J'ai essayé d'encoder la classe de caractères Monad dans Agda. Je suis arrivé jusqu'ici:Pourquoi la monade de tri Set1?
module Monad where
record Monad (M : Set → Set) : Set1 where
field
return : {A : Set} → A → M A
_⟫=_ : {A B : Set} → M A → (A → M B) → M B
Ainsi, une « instance » Monad est vraiment juste un enregistrement de fonctions qui est passé autour. Question: Pourquoi Monad
du tri Set1
? annotant avec Set
donne l'erreur suivante:
The type of the constructor does not fit in the sort of the
datatype, since Set₁ is not less or equal than Set
when checking the definition of Monad
Quel processus de pensée dois-je traversais pour déterminer que Monad
est Set1
plutôt que Set
?