ZVON > References > Haskell reference |
Intro / Search / ZVON |
| Indexes | Syntax | >> Prelude << | Ratio | Complex | Numeric | Ix | Array | List | Maybe | Char | Monad | IO | Directory | System | Time | Locale | CPUTime | Random |
Module: | Prelude |
---|---|
Class: | Monad |
Instances: | [], IO, Maybe |
Bibliography: | What the hell are Monads? Monads for the Working Haskell Programmer -- a short tutorial. Monads |
class Monad m where (>>=) :: m a -> (a -> m b) -> m b (>>) :: m a -> m b -> m b return :: a -> m a fail :: String -> m a -- Minimal complete definition: -- (>>=), return m >> k = m >>= \_ -> k fail s = error s
instance Monad Maybe where (Just x) >>= k = k x Nothing >>= k = Nothing return = Just fail s = Nothing
instance Monad IO where (>>=) = ... return = ... m >> k = m >>= \_ -> k fail s = error s
instance Monad [] where m >>= k = concat (map k m) return x = [x] fail s = []