標準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有什麼意義