Craft3e-0.1.0.2: UseMonads.hs
module UseMonads where
import Control.Monad.Identity
instance Show a => Show (Identity a) where
show (Identity x) = show x
example1 = do { x <- [1,2]; y<-[3,4]; return (x+y)}
example2 = do { x <- Just 1; y<- Just 2; return (x+y)}
example3 = do { x <- Just 1; y<- Nothing; return (x+y)}
example4 = do { x <- Nothing ; y<- Just 2; return (x+y)}
example5 = do {x<-return 'c':: Identity Char; y<-return 'd';return [x,y]}
example6 = do {x<-return 'c':: Maybe Char; y<-return 'd';return [x,y]}
example7 = do {x<-return 'c':: IO Char; y<-return 'd';return [x,y]}
example8 = do {x<-return 'c':: [Char]; y<-return 'd';return [x,y]}