A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://hackage.haskell.org/packages/archive/mtl/2.0.1.0/doc/html/src/Control-Monad-Cont-Class.html below:

Control/Monad/Cont/Class.hs



module Control.Monad.Cont.Class (
    MonadCont(..),
  ) where

import Control.Monad.Trans.Cont (ContT)
import qualified Control.Monad.Trans.Cont as ContT
import Control.Monad.Trans.Error as Error
import Control.Monad.Trans.Identity as Identity
import Control.Monad.Trans.List as List
import Control.Monad.Trans.Maybe as Maybe
import Control.Monad.Trans.Reader as Reader
import Control.Monad.Trans.RWS.Lazy as LazyRWS
import Control.Monad.Trans.RWS.Strict as StrictRWS
import Control.Monad.Trans.State.Lazy as LazyState
import Control.Monad.Trans.State.Strict as StrictState
import Control.Monad.Trans.Writer.Lazy as LazyWriter
import Control.Monad.Trans.Writer.Strict as StrictWriter

import Control.Monad
import Data.Monoid

class (Monad m) => MonadCont m where
    
    callCC :: ((a -> m b) -> m a) -> m a

instance MonadCont (ContT r m) where
    callCC = ContT.callCC




instance (Error e, MonadCont m) => MonadCont (ErrorT e m) where
    callCC = Error.liftCallCC callCC

instance (MonadCont m) => MonadCont (IdentityT m) where
    callCC = Identity.liftCallCC callCC

instance (MonadCont m) => MonadCont (ListT m) where
    callCC = List.liftCallCC callCC

instance (MonadCont m) => MonadCont (MaybeT m) where
    callCC = Maybe.liftCallCC callCC

instance (MonadCont m) => MonadCont (ReaderT r m) where
    callCC = Reader.liftCallCC callCC

instance (Monoid w, MonadCont m) => MonadCont (LazyRWS.RWST r w s m) where
    callCC = LazyRWS.liftCallCC' callCC

instance (Monoid w, MonadCont m) => MonadCont (StrictRWS.RWST r w s m) where
    callCC = StrictRWS.liftCallCC' callCC

instance (MonadCont m) => MonadCont (LazyState.StateT s m) where
    callCC = LazyState.liftCallCC' callCC

instance (MonadCont m) => MonadCont (StrictState.StateT s m) where
    callCC = StrictState.liftCallCC' callCC

instance (Monoid w, MonadCont m) => MonadCont (LazyWriter.WriterT w m) where
    callCC = LazyWriter.liftCallCC callCC

instance (Monoid w, MonadCont m) => MonadCont (StrictWriter.WriterT w m) where
    callCC = StrictWriter.liftCallCC callCC

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4