instance Monad ((->) e) where return f = \_ -> f (>>=) f1 f2 = \r -> f2 (f1 r) r -- f1 :: m a -- f2 :: a -> m b