1 -- !!! Local universal quantification.
2 module ShouldSucceed where
4 import PrelGHC -- to get at All
6 data Monad2 m = MkMonad2 (All a => a -> m a)
7 ((All a, All b) => m a -> (a -> m b) -> m b)
9 halfListMonad :: ((All a, All b) => [a] -> (a -> [b]) -> [b]) -> Monad2 []
10 halfListMonad b = MkMonad2 (\x -> [x]) b