__export ShouldSucceed Monad2{MkMonad2} halfListMonad; 1 data Monad2 m :: (* -> *) = MkMonad2 (__forall [a] => a -> m a) (__forall [b a] => m a -> (a -> m b) -> m b) ; 1 halfListMonad :: (__forall [b a] => [a] -> (a -> [b]) -> [b]) -> Monad2 PrelBase.ZMZN ;