我一直在努力对Agda中的Monad打字机进行编码。我已经走了这么远: record Monad (M : Set → Set) : Set1 where return : {A: Set} → A → M A所以Monad‘实例’实际上只是传递函数的记录。问题:为什么Monad Set1**?我应该经过什么
在类中: -- | Lift a computation from the argument monad to the constructedmonad.lift :: Monad m => m a -> t m a{-# LANGUAGE MultiParamTypeClasses #-}
class Monad (t m) => Mo