3 data RealWorld = RealWorld
\r
4 data IO a = IO (RealWorld -> (RealWorld, a))
\r
9 instance Functor IO where
\r
11 fmap f x = x >>= (return . f)
\r
13 instance Monad IO where
\r
15 return x = IO (\s -> (s, x))
\r
18 (IO m) >>= f = IO (\s -> do
\r
25 runIO m = snd (unIO m RealWorld)
\r
27 main = runIO (return (13 :: Integer))
\r