2009-01-30 27 views
21
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() 

¿Cuál es el significado de la tubería de arriba? El fragmento proviene del here.¿Qué significa una tubería en una definición de clase?

+1

posible duplicado de [¿Qué es el "|" para en una definición de clase Haskell?] (http://stackoverflow.com/questions/2675655/whats-the-for-in-a-haskell-class-definition) –

Respuesta

22

En realidad, es un "functional dependency". En este caso, eso significa que m identifica de manera única w - el tipo m determina el tipo w. (This puede ser un mejor enlace)

Cuestiones relacionadas