标准ML中是否有可能重新导出作为函数参数接收的结构的一部分的数据类型的构造函数。某些代码可能会使这更容易理解: signature FLAG =
sig
type t
end
signature MEMBER =
sig
structure Flag : FLAG
end
functor Member(F : FLAG) : ME
我已经得到了以下数据类型: data Users id height weight = User id height weight
instance Functor Users where
fmap f (User id height weight) = User(f id height weight)
然而,这不会编译? 当我使用一个类型与一个单一的参数,如它正常工作: data Us
Control.Monad.Morph包括 class MFunctor t where
hoist :: Monad m => (forall a. m a -> n a) -> t m b -> t n b
据我所知,没有一个包括实例的使用Monad m约束。人们会怎么做?是否有有效的实例使用约束条件(对于我来说,想象一下hoist id = id)有多难?约束条件对m有什么意义