1 --!!! Another example from the 1.3c documentation
3 data Monad2 m = MkMonad2 (forall a. a -> m a)
4 (forall a, b. m a -> (a -> m b) -> m b)
6 halfListMonad :: (forall a,b. [a] -> (a -> [b]) -> [b]) -> Monad2 []
7 halfListMonad b = MkMonad2 (\x -> [x]) b