What does a pipe in a class definition mean?
-
20-08-2019 - |
Question
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 ()
What is the meaning of the pipe above? The snippet comes from here.
Solution
Actually, it's a "functional dependency". In this case that means that m
uniquely identifies w
-- the type m
determines the type w
. (This may be a better link.)
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow