unique-logic-0.4.0.1: Solve simple simultaneous equations
Safe HaskellSafe-Inferred
LanguageHaskell98

UniqueLogic.ST.MonadTrans

Synopsis

Documentation

class MonadTrans t => C t where Source #

Provide the methods that make a transformed monad a monad.

Methods

point :: Monad m => a -> t m a Source #

bind :: Monad m => t m a -> (a -> t m b) -> t m b Source #

Instances

Instances details
C MaybeT Source # 
Instance details

Defined in UniqueLogic.ST.MonadTrans

Methods

point :: forall (m :: Type -> Type) a. Monad m => a -> MaybeT m a Source #

bind :: forall (m :: Type -> Type) a b. Monad m => MaybeT m a -> (a -> MaybeT m b) -> MaybeT m b Source #

C Track Source # 
Instance details

Defined in UniqueLogic.ST.Example.Verify

Methods

point :: forall (m :: Type -> Type) a. Monad m => a -> Track m a Source #

bind :: forall (m :: Type -> Type) a b. Monad m => Track m a -> (a -> Track m b) -> Track m b Source #

C (ExceptionalT e) Source # 
Instance details

Defined in UniqueLogic.ST.MonadTrans

Methods

point :: forall (m :: Type -> Type) a. Monad m => a -> ExceptionalT e m a Source #

bind :: forall (m :: Type -> Type) a b. Monad m => ExceptionalT e m a -> (a -> ExceptionalT e m b) -> ExceptionalT e m b Source #

C (IdentityT :: (Type -> Type) -> Type -> Type) Source # 
Instance details

Defined in UniqueLogic.ST.MonadTrans

Methods

point :: forall (m :: Type -> Type) a. Monad m => a -> IdentityT m a Source #

bind :: forall (m :: Type -> Type) a b. Monad m => IdentityT m a -> (a -> IdentityT m b) -> IdentityT m b Source #

Monoid w => C (WriterT w) Source # 
Instance details

Defined in UniqueLogic.ST.MonadTrans

Methods

point :: forall (m :: Type -> Type) a. Monad m => a -> WriterT w m a Source #

bind :: forall (m :: Type -> Type) a b. Monad m => WriterT w m a -> (a -> WriterT w m b) -> WriterT w m b Source #

newtype Wrap t m a Source #

Build a regular monad for generic monad transformer and monad. The Const type allows us to force the kind (m :: * -> *) without using ExplicitKindSignatures.

Constructors

Wrap (Const (t m a) (m a)) 

Instances

Instances details
(C t, Monad m) => Applicative (Wrap t m) Source # 
Instance details

Defined in UniqueLogic.ST.MonadTrans

Methods

pure :: a -> Wrap t m a #

(<*>) :: Wrap t m (a -> b) -> Wrap t m a -> Wrap t m b #

liftA2 :: (a -> b -> c) -> Wrap t m a -> Wrap t m b -> Wrap t m c #

(*>) :: Wrap t m a -> Wrap t m b -> Wrap t m b #

(<*) :: Wrap t m a -> Wrap t m b -> Wrap t m a #

(C t, Monad m) => Functor (Wrap t m) Source # 
Instance details

Defined in UniqueLogic.ST.MonadTrans

Methods

fmap :: (a -> b) -> Wrap t m a -> Wrap t m b #

(<$) :: a -> Wrap t m b -> Wrap t m a #

(C t, Monad m) => Monad (Wrap t m) Source # 
Instance details

Defined in UniqueLogic.ST.MonadTrans

Methods

(>>=) :: Wrap t m a -> (a -> Wrap t m b) -> Wrap t m b #

(>>) :: Wrap t m a -> Wrap t m b -> Wrap t m b #

return :: a -> Wrap t m a #

wrap :: t m a -> Wrap t m a Source #

unwrap :: Wrap t m a -> t m a Source #

lift :: (C t, Monad m) => m a -> Wrap t m a Source #