Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Cleaning up the parent's formatting as I think it's too late for them to edit. Content is unchanged:

That is, a monad is a type parametrized by some other type, with the following two functions:

    1) return :: a -> m a
    2) (>>=) :: m a -> (a -> m b) -> m b
such that three laws hold:

    a) return x >>= f == f x
    b) m >>= return == m
    c) (m >>= f) >>= g == m >>= (\x -> f x >>= g)


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: