maam-0.1.0.0: A monadic framework for abstract interpretation.

Safe HaskellNone
LanguageHaskell2010

MAAM.MonadStep

Documentation

class MonadStep ς m | m -> ς where Source

Methods

mstepγ :: (a -> m b) -> ς a -> ς b Source

Instances

MonadStep ID ID 
(MonadStep ς2 m, Isomorphism2 * ς1 ς2) => MonadStep ς1 (IsoMonadStep (* -> *) (* -> *) * ς1 ς2 m) 
(MonadStep ς m, Functorial * JoinLattice m) => MonadStep ((:.:) * * ς ListSet) (ListSetT m) 
(MonadStep ς m, Commute ς ListSet, Functorial * JoinLattice ς) => MonadStep ((:.:) * * ListSet ς) (ListSetT m) 
(MonadStep ς m, Functor m) => MonadStep ((:.:) * * ς ((,) 𝓈)) (StateT 𝓈 m) 
(MonadStep ς m, Functor m) => MonadStep ((:.:) * * ς ((,) 𝓈1)) (AddStateT k 𝓈12 𝓈1 m) 
MonadStep (PSΣ val lτ dτ ψ) (PS val lτ dτ ψ) 
(Eq (val lτ dτ ψ), JoinLattice (val lτ dτ ψ)) => MonadStep (FIΣ val lτ dτ ψ) (FI val lτ dτ ψ) 
(Eq (val lτ dτ ψ), JoinLattice (val lτ dτ ψ)) => MonadStep (FSΣ val lτ dτ ψ) (FS val lτ dτ ψ) 

newtype IsoMonadStep ς1 ς2 m a Source

Constructors

IsoMonadStep 

Fields

runIsoMonadStep :: m a
 

Instances

MonadState s m => MonadState s (IsoMonadStep k k * ς1 ς2 m) 
MonadStateE s m => MonadStateE s (IsoMonadStep k k * ς1 ς2 m) 
MonadStateI s m => MonadStateI s (IsoMonadStep k k * ς1 ς2 m) 
(MonadStep ς2 m, Isomorphism2 * ς1 ς2) => MonadStep ς1 (IsoMonadStep (* -> *) (* -> *) * ς1 ς2 m) 
MonadPlus m => MonadPlus (IsoMonadStep k k * ς1 ς2 m) 
MonadZero m => MonadZero (IsoMonadStep k k * ς1 ς2 m) 
Monad m => Monad (IsoMonadStep k k * ς1 ς2 m) 
Bind m => Bind (IsoMonadStep k k * ς1 ς2 m) 
Applicative m => Applicative (IsoMonadStep k k * ς1 ς2 m) 
Product m => Product (IsoMonadStep k k * ς1 ς2 m) 
Functor m => Functor (IsoMonadStep k k * ς1 ς2 m) 
Unit m => Unit (IsoMonadStep k k * ς1 ς2 m)