{-# LANGUAGE CPP #-}
#if __GLASGOW_HASKELL__ >= 704
{-# LANGUAGE Safe #-}
#elif __GLASGOW_HASKELL__ >= 702
{-# LANGUAGE Trustworthy #-}
#endif
module Control.Comonad.Trans.Class
( ComonadTrans(..) ) where
import Control.Comonad
import Control.Monad.Trans.Identity
class ComonadTrans t where
lower :: Comonad w => t w a -> w a
instance ComonadTrans IdentityT where
lower :: forall (w :: * -> *) a. Comonad w => IdentityT w a -> w a
lower = forall {k} (f :: k -> *) (a :: k). IdentityT f a -> f a
runIdentityT