类定义中的管道是什么意思?

时间:2009-01-30 22:09:11

标签: haskell syntax types typeclass functional-dependencies

class (Monoid w, Monad m) => MonadWriter w m | m -> w where 
   pass   :: m (a,w -> w) -> m a 
   listen :: m a -> m (a,w) 
   tell   :: w -> m () 

以上管道的含义是什么?该代码段来自here

1 个答案:

答案 0 :(得分:24)

实际上,这是一个“functional dependency”。在这种情况下,这意味着m唯一标识w - 类型m确定类型w。 (This可能是更好的链接。)