module Control.Monad.All.Trans (AllT(), anything) where
import Control.Monad
import Control.Monad.IO.Class
import Control.Monad.Trans.Class
import Control.Applicative
data AllT (m :: * -> *) a = AllT
anything :: AllT m a
anything = AllT
instance Functor (AllT m) where
fmap f _ = AllT
instance Applicative (AllT m) where
pure _ = AllT
_ <*> _ = AllT
instance Monad (AllT m) where
return _ = AllT
_ >>= _ = AllT
instance Alternative (AllT m) where
empty = AllT
_ <|> _ = AllT
instance MonadPlus (AllT m) where
mzero = AllT
mplus _ _ = AllT
instance MonadTrans AllT where
lift _ = AllT
instance MonadIO (AllT m) where
liftIO _ = AllT