也许这两种说法都不是绝对精确的,但单子通常被定义为“内切函子范畴中的单子”;Haskell 被定义为“应用函子上的单子”,其中是“强松弛的单截函子”。alternative的中性元素具有f a类型,因此是“空”的,对于monad则是a -> m a类型,因此具有意义上的“非空”;替换的操作具有f a -> f a -> f a类型,而monad<
,我遇到了一个问题,即它不是内射的;这意味着我想要的一些类型推论不存在。我认为当m是常数时,Exp n m应该是内射的,所以我想尝试实现它,但是我不知道在经过大量的尝试和错误之后,如何做到这一点。即使它目前不能解决我的问题,它在未来可能是有用的。或者,对于给定的Exp n m变化的n,m是内射的,而n不是One