Используйте type Query = Const Void
и eval = absurd << un Const
type Query
= Const Void = data Query a
. Все они имеют тип Kind -> Kind
и не имеют конструктора.
Для eval = absurd <<< un Const
тип соответствияQuery ~> H.ComponentDSL State Query Void m
.absurd :: forall a. Void -> a
убедитесь, что тип возвращаемого значения совпадает.un Const :: forall a b -> Const a b -> a
убедитесь, что тип ввода соответствует (forall a. Query a -> Void
)