maam-0.1.0.0: A monadic framework for abstract interpretation.

Safe HaskellNone
LanguageHaskell2010

FP.Core

Documentation

module Prelude

data W c where Source

Constructors

W :: c => W c 

with :: W c -> (c => a) -> a Source

class Universal a Source

Instances

Universal k a 

class (c1 a, c2 a) => (c1 ::*:: c2) a Source

Instances

(c1 a, c2 a) => (::*::) k c1 c2 a 

class t (u a) => (t ::.:: u) a Source

Instances

t (u a) => (::.::) k k t u a 

class c1 ::=>:: c2 where Source

Methods

impl :: c1 => W c2 Source

class Bifunctorial c t where Source

Methods

bifunctorial :: (c a, c b) => W (c (t a b)) Source

bifunctorialP :: (Bifunctorial c t, c a, c b) => P c -> P t -> P a -> P b -> W (c (t a b)) Source

class ToInt a where Source

Methods

toInt :: a -> Int Source

Instances

class FromInt a where Source

Methods

fromInt :: Int -> a Source

class ToRational a where Source

Methods

toRational :: a -> Rational Source

class FromRational a where Source

class ToDouble a where Source

Methods

toDouble :: a -> Double Source

class FromDouble a where Source

Methods

fromDouble :: Double -> a Source

class ToChars a where Source

Methods

toChars :: a -> Chars Source

Instances

class FromChars a where Source

Methods

fromChars :: Chars -> a Source

Instances

class FromString t where Source

Methods

fromString' :: String -> t Source

Instances

class Commute t u where Source

Methods

commute :: t (u a) -> u (t a) Source

class Peano a where Source

Methods

zer :: a Source

suc :: a -> a Source

niter :: (Eq a, Peano a) => (b -> b) -> b -> a -> b Source

niterOn :: (Eq a, Peano a) => a -> b -> (b -> b) -> b Source

class Peano a => Additive a where Source

Methods

zero :: a Source

(+) :: a -> a -> a infixr 6 Source

class Additive a => Subtractive a where Source

Methods

(-) :: a -> a -> a infix 6 Source

class Additive a => Multiplicative a where Source

Methods

one :: a Source

(*) :: a -> a -> a infixr 7 Source

class Multiplicative a => Divisible a where Source

Methods

(/) :: a -> a -> a infix 7 Source

Instances

class Multiplicative a => TruncateDivisible a where Source

Methods

(//) :: a -> a -> a infix 7 Source

negate :: Subtractive a => a -> a Source

inverse :: Divisible a => a -> a Source

class Category t where Source

Methods

catid :: t a a Source

(<.>) :: t b c -> t a b -> t a c infixr 9 Source

Instances

type (~>) m n = forall a. m a -> n a infixr 1 Source

type (~~>) t u = forall a m. t m a -> u m a Source

class Morphism a b where Source

Methods

morph :: a -> b Source

Instances

Morphism (PI𝒮 lτ dτ ψ, Store val lτ dτ ψ) (𝒮 val lτ dτ ψ) 
Morphism (𝒮 val lτ dτ ψ) (PI𝒮 lτ dτ ψ, Store val lτ dτ ψ) 
(Ord (val lτ dτ ψ), Ord (lτ ψ), Ord (dτ ψ), Ord a) => Morphism (PSΣ𝒫 val lτ dτ ψ a) (PSΣ val lτ dτ ψ a) 
(Ord (val lτ dτ ψ), Ord (lτ ψ), Ord (dτ ψ), Ord a) => Morphism (PSΣ val lτ dτ ψ a) (PSΣ𝒫 val lτ dτ ψ a) 
(Ord (val lτ dτ ψ), Ord (lτ ψ), Ord (dτ ψ), Ord a) => Morphism (FIΣ𝒫 val lτ dτ ψ a) (FIΣ val lτ dτ ψ a) 
(Ord (val lτ dτ ψ), Ord (lτ ψ), Ord (dτ ψ), Ord a) => Morphism (FIΣ val lτ dτ ψ a) (FIΣ𝒫 val lτ dτ ψ a) 
(Ord (val lτ dτ ψ), Ord (lτ ψ), Ord (dτ ψ), Ord a) => Morphism (FSΣ𝒫 val lτ dτ ψ a) (FSΣ val lτ dτ ψ a) 
(Ord (val lτ dτ ψ), Ord (lτ ψ), Ord (dτ ψ), Ord a) => Morphism (FSΣ val lτ dτ ψ a) (FSΣ𝒫 val lτ dτ ψ a) 

class Morphism2 m n where Source

Methods

morph2 :: m ~> n Source

Instances

Morphism2 * (PSΣ val lτ dτ ψ) (PSΣ' val lτ dτ ψ) 
Morphism2 * (PSΣ' val lτ dτ ψ) (PSΣ val lτ dτ ψ) 
Morphism2 * (FIΣ val lτ dτ ψ) (FIΣ' val lτ dτ ψ) 
Morphism2 * (FIΣ' val lτ dτ ψ) (FIΣ val lτ dτ ψ) 
Morphism2 * (FSΣ val lτ dτ ψ) (FSΣ' val lτ dτ ψ) 
Morphism2 * (FSΣ' val lτ dτ ψ) (FSΣ val lτ dτ ψ) 

class Morphism3 t u where Source

Methods

morph3 :: t ~~> u Source

Instances

Morphism3 (* -> *) * (CPSKon r) (KFun * r) 
Morphism3 (* -> *) * (KFun * r) (CPSKon r) 

class (Morphism a b, Morphism b a) => Isomorphism a b Source

Instances

Isomorphism (𝒮 val lτ dτ ψ) (PI𝒮 lτ dτ ψ, Store val lτ dτ ψ) 
(Ord (val lτ dτ ψ), Ord (lτ ψ), Ord (dτ ψ), Ord a) => Isomorphism (PSΣ val lτ dτ ψ a) (PSΣ𝒫 val lτ dτ ψ a) 
(Ord (val lτ dτ ψ), Ord (lτ ψ), Ord (dτ ψ), Ord a) => Isomorphism (FIΣ val lτ dτ ψ a) (FIΣ𝒫 val lτ dτ ψ a) 
(Ord (val lτ dτ ψ), Ord (lτ ψ), Ord (dτ ψ), Ord a) => Isomorphism (FSΣ val lτ dτ ψ a) (FSΣ𝒫 val lτ dτ ψ a) 

isoto :: Isomorphism a b => a -> b Source

isofrom :: Isomorphism a b => b -> a Source

class (Morphism2 t u, Morphism2 u t) => Isomorphism2 t u Source

Instances

Isomorphism2 * (PSΣ val lτ dτ ψ) (PSΣ' val lτ dτ ψ) 
Isomorphism2 * (FIΣ val lτ dτ ψ) (FIΣ' val lτ dτ ψ) 
Isomorphism2 * (FSΣ val lτ dτ ψ) (FSΣ' val lτ dτ ψ) 

onIso2 :: Isomorphism2 t u => (u a -> u b) -> t a -> t b Source

class (Morphism3 v w, Morphism3 w v) => Isomorphism3 v w Source

Instances

Isomorphism3 (* -> *) * (KFun * r) (CPSKon r) 

class HasLens a b where Source

Methods

view :: Lens a b Source

Instances

viewP :: HasLens a b => P b -> Lens a b Source

data POrdering Source

Constructors

PEQ 
PLT 
PGT 
PUN 

class PartialOrder a where Source

Minimal complete definition

Nothing

Methods

pcompare :: a -> a -> POrdering Source

(<~) :: a -> a -> Bool infix 4 Source

(<.) :: a -> a -> Bool infix 4 Source

Instances

PartialOrder Int 
PartialOrder Lit 
PartialOrder BdrNum 
PartialOrder LocNum 
PartialOrder Op 
Ord a => PartialOrder (ListSet a) 
PartialOrder (Set a) 
PartialOrder a => PartialOrder (ID a) 
(PartialOrder a, PartialOrder b) => PartialOrder (a, b) 
PartialOrder a => PartialOrder (StampedFix a f) 
(Ord k, PartialOrder v) => PartialOrder (Map k v) 
(Eq n, Eq c) => PartialOrder (PreCall n c) 
(Eq n, Eq c) => PartialOrder (PreAtom n c) 
(PartialOrder a, PartialOrder b, PartialOrder c) => PartialOrder (a, b, c) 
(PartialOrder a, PartialOrder b, PartialOrder c, PartialOrder d, PartialOrder e) => PartialOrder (a, b, c, d, e) 
PartialOrder (t (u a)) => PartialOrder ((:.:) k k t u a) 
PartialOrder (PSΣ𝒫 val lτ dτ ψ a) 
(Ord a, Ord (lτ ψ), Ord (dτ ψ), Ord (val lτ dτ ψ)) => PartialOrder (PSΣ val lτ dτ ψ a) 
(Ord (lτ ψ), Ord (dτ ψ), PartialOrder (val lτ dτ ψ)) => PartialOrder (FIΣ𝒫 val lτ dτ ψ a) 
(Ord a, Ord (lτ ψ), Ord (dτ ψ), PartialOrder (val lτ dτ ψ)) => PartialOrder (FIΣ val lτ dτ ψ a) 
PartialOrder (FSΣ𝒫 val lτ dτ ψ a) 
(Ord a, Ord (lτ ψ), Ord (dτ ψ), Ord (val lτ dτ ψ)) => PartialOrder (FSΣ val lτ dτ ψ a) 
PartialOrder (Power k k k val lτ dτ ψ) 

(<=>) :: Ord a => a -> a -> Ordering Source

(>~) :: PartialOrder a => a -> a -> Bool Source

(>.) :: PartialOrder a => a -> a -> Bool Source

class PartialOrderF t where Source

discreteOrder :: Eq a => a -> a -> POrdering Source

poiter :: PartialOrder a => (a -> a) -> a -> a Source

class Monoid a where Source

Methods

null :: a Source

(++) :: a -> a -> a infixr 6 Source

iterateAppend :: (Monoid a, Eq n, Peano n) => n -> a -> a Source

class JoinLattice a where Source

Methods

bot :: a Source

(\/) :: a -> a -> a infixr 6 Source

Instances

JoinLattice Bool 
JoinLattice Int 
Functorial * JoinLattice ID 
JoinLattice a => Functorial * JoinLattice ((,) a) 
(Functorial * JoinLattice m, JoinLattice s) => Functorial * JoinLattice (StateT s m) 
(Functorial * JoinLattice t, Functorial * JoinLattice u) => Functorial * JoinLattice ((:.:) * * t u) 
JoinLattice (ListSet a) 
JoinLattice (Set a) 
JoinLattice a => JoinLattice (ID a) 
JoinLattice b => JoinLattice (a -> b) 
(JoinLattice a, JoinLattice b) => JoinLattice (a, b) 
(Eq v, JoinLattice v) => JoinLattice (Map k v) 
(JoinLattice a, JoinLattice b, JoinLattice c) => JoinLattice (a, b, c) 
(Functorial * JoinLattice m, JoinLattice s, JoinLattice a) => JoinLattice (StateT s m a) 
(JoinLattice a, JoinLattice b, JoinLattice c, JoinLattice d, JoinLattice e) => JoinLattice (a, b, c, d, e) 
JoinLattice (t (u a)) => JoinLattice ((:.:) k k t u a) 
JoinLattice (PSΣ𝒫 val lτ dτ ψ a) 
JoinLattice (PSΣ val lτ dτ ψ a) 
(Eq (val lτ dτ ψ), JoinLattice (val lτ dτ ψ)) => JoinLattice (FIΣ𝒫 val lτ dτ ψ a) 
(Eq (val lτ dτ ψ), JoinLattice (val lτ dτ ψ)) => JoinLattice (FIΣ val lτ dτ ψ a) 
JoinLattice (FSΣ𝒫 val lτ dτ ψ a) 
JoinLattice (FSΣ val lτ dτ ψ a) 
JoinLattice (Power k k k val lτ dτ ψ) 

collect :: (JoinLattice a, PartialOrder a) => (a -> a) -> a -> a Source

collectN :: (JoinLattice a, PartialOrder a, Eq n, Peano n) => n -> (a -> a) -> a -> a Source

class MeetLattice a where Source

Methods

top :: a Source

(/\) :: a -> a -> a infixr 7 Source

Instances

class (JoinLattice a, MeetLattice a) => Lattice a Source

Instances

Lattice b => Lattice (a -> b) 

class Unit t where Source

Methods

unit :: a -> t a Source

Instances

Unit [] 
Unit IO 
Unit Q 
Unit Maybe 
Unit ListSet 
Unit FreeMonoid 
Unit ID 
Unit DocM 
Unit ((:+:) a) 
Unit m => Unit (ListSetT m) 
Unit m => Unit (ListT m) 
Unit m => Unit (MaybeT m) 
Unit (FreeMonoidFunctor f) 
Unit (FreeFunctor f) 
Unit (Parser t) 
Unit m => Unit (StStateT m) 
Unit m => Unit (StateT s m) 
(Unit m, Monoid o) => Unit (WriterT o m) 
Unit m => Unit (ErrorT e m) 
Unit m => Unit (KonT * r m) 
Unit m => Unit (ReaderT * r m) 
(Unit t, Unit u) => Unit ((:.:) * * t u) 
(Unit m, Monoid o) => Unit (RWST r o s m) 
Unit m => Unit (AddStateT k s12 s1 m) 
Unit (PS val lτ dτ ψ) 
Unit (FI val lτ dτ ψ) 
Unit (FS val lτ dτ ψ) 
(Monad m, Morphism3 (* -> *) * (k r) (KFun * r)) => Unit (OpaqueKonT * * k r m) 
Unit m => Unit (IsoMonadStep k k * ς1 ς2 m) 

class Functor t where Source

Methods

map :: (a -> b) -> t a -> t b Source

Instances

Functor [] 
Functor IO 
Functor Q 
Functor Maybe 
Functor ListSet 
Functor FreeMonoid 
Functor ID 
Functor DocM 
Functor ((->) a) 
Functor ((:+:) a) 
Functor m => Functor (ListSetT m) 
Functor m => Functor (ListT m) 
Functor m => Functor (MaybeT m) 
Functor f => Functor (FreeMonoidFunctor f) 
Functor f => Functor (FreeFunctor f) 
Functor (Parser t) 
Functor m => Functor (StStateT m) 
Functor m => Functor (StateT s m) 
Functor m => Functor (WriterT o m) 
Functor m => Functor (ErrorT e m) 
Unit m => Functor (KonT * r m) 
Functor m => Functor (ReaderT * r m) 
(Functor t, Functor u) => Functor ((:.:) * * t u) 
Functor m => Functor (RWST r o s m) 
Functor m => Functor (AddStateT k s12 s1 m) 
Functor (PS val lτ dτ ψ) 
Functor (FI val lτ dτ ψ) 
Functor (FS val lτ dτ ψ) 
(Monad m, Isomorphism3 (* -> *) * (KFun * r) (k r)) => Functor (OpaqueKonT * * k r m) 
Functor m => Functor (IsoMonadStep k k * ς1 ς2 m) 

(^@) :: Functor t => (a -> b) -> t a -> t b infixl 9 Source

(^$) :: Functor t => (a -> b) -> t a -> t b infixr 0 Source

(^.) :: Functor t => (b -> c) -> (a -> t b) -> a -> t c infixr 9 Source

(.^) :: Functor t => (t b -> c) -> (a -> b) -> t a -> c infixr 9 Source

(^.:) :: Functor t => (c -> d) -> (a -> b -> t c) -> a -> b -> t d infixr 9 Source

(^..:) :: Functor t => (d -> e) -> (a -> b -> c -> t d) -> a -> b -> c -> t e Source

(^^.) :: (Functor t, Functor u) => (b -> c) -> (a -> t (u b)) -> a -> t (u c) infixr 9 Source

mapOn :: Functor t => t a -> (a -> b) -> t b Source

class FunctorM t where Source

Methods

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

Instances

(^*@) :: (FunctorM t, Monad m) => (a -> m b) -> t a -> m (t b) infixl 9 Source

(^*$) :: (FunctorM t, Monad m) => (a -> m b) -> t a -> m (t b) infixr 0 Source

(^*.) :: (FunctorM t, Monad m) => (b -> m c) -> (a -> m b) -> t a -> m (t c) infixr 9 Source

mapOnM :: (FunctorM t, Monad m) => t a -> (a -> m b) -> m (t b) Source

sequence :: (FunctorM t, Monad m) => t (m a) -> m (t a) Source

class Product t where Source

Methods

(<*>) :: t a -> t b -> t (a, b) infixr 7 Source

Instances

Product [] 
Product IO 
Product Q 
Product Maybe 
Product ListSet 
Product ID 
Product DocM 
Product ((:+:) a) 
(Functor m, Product m) => Product (SetT m) 
(Monad m, Functorial * JoinLattice m) => Product (ListSetT m) 
(Monad m, Functorial * Monoid m) => Product (ListT m) 
(Functor m, Product m) => Product (MaybeT m) 
Product (Parser t) 
Monad m => Product (StStateT m) 
Monad m => Product (StateT s m) 
(Functor m, Product m, Monoid o) => Product (WriterT o m) 
(Functor m, Product m) => Product (ErrorT e m) 
Unit m => Product (KonT * r m) 
Product m => Product (ReaderT * r m) 
(Monad m, Monoid o) => Product (RWST r o s m) 
Monad m => Product (AddStateT k s12 s1 m) 
Product (PS val lτ dτ ψ) 
(Eq (val lτ dτ ψ), JoinLattice (val lτ dτ ψ)) => Product (FI val lτ dτ ψ) 
(Eq (val lτ dτ ψ), JoinLattice (val lτ dτ ψ)) => Product (FS val lτ dτ ψ) 
(Monad m, Isomorphism3 (* -> *) * (KFun * r) (k r)) => Product (OpaqueKonT * * k r m) 
Product m => Product (IsoMonadStep k k * ς1 ς2 m) 

class Applicative t where Source

Methods

(<@>) :: t (a -> b) -> t a -> t b infixl 9 Source

Instances

Applicative [] 
Applicative IO 
Applicative Q 
Applicative Maybe 
Applicative ListSet 
Applicative ID 
Applicative DocM 
Applicative ((:+:) a) 
(Monad m, Functorial * JoinLattice m) => Applicative (ListSetT m) 
(Monad m, Functorial * Monoid m) => Applicative (ListT m) 
(Functor m, Applicative m) => Applicative (MaybeT m) 
Applicative (Parser t) 
Monad m => Applicative (StStateT m) 
Monad m => Applicative (StateT s m) 
(Functor m, Applicative m, Monoid o) => Applicative (WriterT o m) 
(Functor m, Applicative m) => Applicative (ErrorT e m) 
Unit m => Applicative (KonT * r m) 
Applicative m => Applicative (ReaderT * r m) 
(Monad m, Monoid o) => Applicative (RWST r o s m) 
Monad m => Applicative (AddStateT k s12 s1 m) 
Applicative (PS val lτ dτ ψ) 
(Eq (val lτ dτ ψ), JoinLattice (val lτ dτ ψ)) => Applicative (FI val lτ dτ ψ) 
(Eq (val lτ dτ ψ), JoinLattice (val lτ dτ ψ)) => Applicative (FS val lτ dτ ψ) 
(Monad m, Isomorphism3 (* -> *) * (KFun * r) (k r)) => Applicative (OpaqueKonT * * k r m) 
Applicative m => Applicative (IsoMonadStep k k * ς1 ς2 m) 

(<$>) :: Applicative t => t (a -> b) -> t a -> t b infixr 0 Source

class Bind m where Source

Methods

(>>=) :: m a -> (a -> m b) -> m b infixl 1 Source

Instances

Bind [] 
Bind IO 
Bind Q 
Bind Maybe 
Bind ListSet 
Bind Set 
Bind ID 
Bind DocM 
Bind ((:+:) a) 
(Functorial * JoinLattice m, Bind m) => Bind (SetT m) 
(Bind m, Functorial * JoinLattice m) => Bind (ListSetT m) 
(Bind m, Functorial * Monoid m) => Bind (ListT m) 
Monad m => Bind (MaybeT m) 
Bind (Parser t) 
Bind m => Bind (StStateT m) 
Bind m => Bind (StateT s m) 
(Monad m, Monoid o) => Bind (WriterT o m) 
(Unit m, Bind m) => Bind (ErrorT e m) 
Unit m => Bind (KonT * r m) 
Bind m => Bind (ReaderT * r m) 
(Monad m, Monoid o) => Bind (RWST r o s m) 
Bind m => Bind (AddStateT k s12 s1 m) 
Bind (PS val lτ dτ ψ) 
(Eq (val lτ dτ ψ), JoinLattice (val lτ dτ ψ)) => Bind (FI val lτ dτ ψ) 
(Eq (val lτ dτ ψ), JoinLattice (val lτ dτ ψ)) => Bind (FS val lτ dτ ψ) 
(Monad m, Isomorphism3 (* -> *) * (KFun * r) (k r)) => Bind (OpaqueKonT * * k r m) 
Bind m => Bind (IsoMonadStep k k * ς1 ς2 m) 

class (Unit m, Functor m, Product m, Applicative m, Bind m) => Monad m Source

Instances

Monad [] 
Monad IO 
Monad Q 
Monad Maybe 
Monad ListSet 
Monad ID 
Monad DocM 
Monad ((:+:) a) 
(Monad m, Functorial * JoinLattice m) => Monad (ListSetT m) 
(Monad m, Functorial * Monoid m) => Monad (ListT m) 
Monad m => Monad (MaybeT m) 
Monad (Parser t) 
Monad m => Monad (StStateT m) 
Monad m => Monad (StateT s m) 
(Monad m, Monoid o) => Monad (WriterT o m) 
Monad m => Monad (ErrorT e m) 
Unit m => Monad (KonT * r m) 
Monad m => Monad (ReaderT * r m) 
(Monad m, Monoid o) => Monad (RWST r o s m) 
Monad m => Monad (AddStateT k s12 s1 m) 
Monad (PS val lτ dτ ψ) 
(Eq (val lτ dτ ψ), JoinLattice (val lτ dτ ψ)) => Monad (FI val lτ dτ ψ) 
(Eq (val lτ dτ ψ), JoinLattice (val lτ dτ ψ)) => Monad (FS val lτ dτ ψ) 
(Monad m, Isomorphism3 (* -> *) * (KFun * r) (k r)) => Monad (OpaqueKonT * * k r m) 
Monad m => Monad (IsoMonadStep k k * ς1 ς2 m) 

fail :: Chars -> m a Source

return :: Monad m => a -> m a Source

kleisli :: Monad m => (a -> b) -> a -> m b Source

(>>) :: Bind m => m a -> m b -> m b infixl 1 Source

extend :: Bind m => (a -> m b) -> m a -> m b Source

void :: Functor m => m a -> m () Source

(*@) :: Bind m => (a -> m b) -> m a -> m b infixl 9 Source

(*$) :: Bind m => (a -> m b) -> m a -> m b infixr 0 Source

(*.) :: Bind m => (b -> m c) -> (a -> m b) -> a -> m c infixr 9 Source

mmap :: (Bind m, Unit m) => (a -> b) -> m a -> m b Source

mpair :: (Bind m, Unit m) => m a -> m b -> m (a, b) Source

mapply :: (Bind m, Unit m) => m (a -> b) -> m a -> m b Source

mjoin :: Bind m => m (m a) -> m a Source

when :: Unit m => Bool -> m () -> m () Source

class Unit2 t where Source

Methods

unit2 :: m ~> t m Source

class Join2 t where Source

Methods

join2 :: t (t m) ~> t m Source

class Functor2 t where Source

Methods

map2 :: (m ~> n) -> t m ~> t n Source

class IsoFunctor2 t where Source

Methods

isoMap2 :: (m ~> n) -> (n ~> m) -> t m ~> t n Source

class FunctorIsoFunctor2 t where Source

Methods

fisoMap2 :: (Functor m, Functor n) => (m ~> n) -> (n ~> m) -> t m ~> t n Source

class MonadUnit2 t where Source

Methods

munit2 :: Monad m => m ~> t m Source

Instances

Monoid o => MonadUnit2 (RWST r o s) 

class MonadJoin2 t where Source

Methods

mjoin2 :: Monad m => t (t m) ~> t m Source

Instances

Monoid o => MonadJoin2 (RWST r o s) 

class MonadFunctor2 t where Source

Methods

mmap2 :: (Monad m, Monad n) => (m ~> n) -> t m ~> t n Source

Instances

Monoid o => MonadFunctor2 * (RWST r o s) 

class MonadIsoFunctor2 t where Source

Methods

misoMap2 :: (Monad m, Monad n) => (m ~> n) -> (n ~> m) -> t m ~> t n Source

Instances

MonadIsoFunctor2 * (KonT * r) 
Isomorphism3 (* -> *) * (k r) (KFun * r) => MonadIsoFunctor2 * (OpaqueKonT * * k r) 

class MonadZero m where Source

Methods

mzero :: m a Source

Instances

MonadZero [] 
MonadZero Q 
MonadZero Maybe 
MonadZero Set 
Functorial * JoinLattice m => MonadZero (SetT m) 
Functorial * JoinLattice m => MonadZero (ListSetT m) 
Functorial * Monoid m => MonadZero (ListT m) 
MonadZero (Parser t) 
MonadZero m => MonadZero (StateT s m) 
(MonadZero m, Monoid o) => MonadZero (WriterT o m) 
MonadZero m => MonadZero (ReaderT * r m) 
(MonadZero m, Monoid o) => MonadZero (RWST r o s m) 
MonadZero m => MonadZero (AddStateT k s12 s1 m) 
MonadZero (PS val lτ dτ ψ) 
(Eq (val lτ dτ ψ), JoinLattice (val lτ dτ ψ)) => MonadZero (FI val lτ dτ ψ) 
(Eq (val lτ dτ ψ), JoinLattice (val lτ dτ ψ)) => MonadZero (FS val lτ dτ ψ) 
MonadZero m => MonadZero (IsoMonadStep k k * ς1 ς2 m) 

guard :: (Unit m, MonadZero m) => Bool -> m () Source

liftMaybeZero :: (Unit m, MonadZero m) => Maybe a -> m a Source

class MonadConcat m where Source

Methods

(<++>) :: m a -> m a -> m a Source

class MonadPlus m where Source

Methods

(<+>) :: m a -> m a -> m a infixr 6 Source

Instances

MonadPlus ListSet 
MonadPlus Set 
Functorial * JoinLattice m => MonadPlus (SetT m) 
Functorial * JoinLattice m => MonadPlus (ListSetT m) 
MonadPlus m => MonadPlus (StateT s m) 
MonadPlus m => MonadPlus (AddStateT k s12 s1 m) 
MonadPlus (PS val lτ dτ ψ) 
(Eq (val lτ dτ ψ), JoinLattice (val lτ dτ ψ)) => MonadPlus (FI val lτ dτ ψ) 
(Eq (val lτ dτ ψ), JoinLattice (val lτ dτ ψ)) => MonadPlus (FS val lτ dτ ψ) 
MonadPlus m => MonadPlus (IsoMonadStep k k * ς1 ς2 m) 

oneOrMore :: (Monad m, MonadZero m, MonadConcat m) => m a -> m (a, [a]) Source

twoOrMore :: (Monad m, MonadZero m, MonadConcat m) => m a -> m (a, a, [a]) Source

oneOrMoreList :: (Monad m, MonadZero m, MonadConcat m) => m a -> m [a] Source

many :: (Monad m, MonadZero m, MonadConcat m) => m a -> m [a] Source

newtype MaybeT m a Source

Constructors

MaybeT 

Fields

runMaybeT :: m (Maybe a)
 

maybeEM :: MonadMaybeE m => m (Maybe a) -> m a Source

lookMaybe :: MonadMaybeI m => m a -> m (Maybe a) Source

(<|>) :: MonadMaybeI m => m a -> m a -> m a Source

newtype ErrorT e m a Source

Constructors

ErrorT 

Fields

runErrorT :: m (e :+: a)
 

Instances

FunctorFunctor2 * (ErrorT e) 
(Functor m, MonadState s m) => MonadState s (ErrorT e m) 
(Functor m, MonadStateE s m) => MonadStateE s (ErrorT e m) 
(Functor m, MonadStateI s m) => MonadStateI s (ErrorT e m) 
MonadReader r m => MonadReader r (ErrorT e m) 
MonadReaderE r m => MonadReaderE r (ErrorT e m) 
MonadReaderI r m => MonadReaderI r (ErrorT e m) 
Monad m => MonadError e (ErrorT e m) 
Monad m => MonadErrorI e (ErrorT e m) 
Monad m => MonadErrorE e (ErrorT e m) 
FunctorJoin2 (ErrorT e) 
FunctorUnit2 (ErrorT e) 
Monad m => Monad (ErrorT e m) 
(Unit m, Bind m) => Bind (ErrorT e m) 
(Functor m, Applicative m) => Applicative (ErrorT e m) 
(Functor m, Product m) => Product (ErrorT e m) 
Functor m => Functor (ErrorT e m) 
Unit m => Unit (ErrorT e m) 
(Functorial * Pretty m, Pretty e, Pretty a) => Pretty (ErrorT e m a) 

class Monad m => MonadErrorE e m where Source

Methods

errorE :: ErrorT e m ~> m Source

class Monad m => MonadErrorI e m where Source

Methods

errorI :: m ~> ErrorT e m Source

Instances

MonadErrorI a ((:+:) a) 
MonadErrorI e m => MonadErrorI e (StateT s m) 
Monad m => MonadErrorI e (ErrorT e m) 
MonadErrorI e m => MonadErrorI e (ReaderT * r m) 

class (MonadErrorE e m, MonadErrorI e m) => MonadError e m Source

Instances

MonadError e m => MonadError e (StateT s m) 
Monad m => MonadError e (ErrorT e m) 
MonadError e m => MonadError e (ReaderT * r m) 

liftSum :: MonadErrorE e m => (e :+: a) -> m a Source

throw :: MonadErrorE e m => e -> m a Source

catch :: MonadErrorI e m => m a -> (e -> m a) -> m a Source

catchP :: MonadErrorI e m => P e -> m a -> (e -> m a) -> m a Source

newtype ReaderT r m a Source

Constructors

ReaderT 

Fields

unReaderT :: r -> m a
 

Instances

FunctorFunctor2 * (ReaderT * r) 
(Functor m, MonadState s m) => MonadState s (ReaderT * r m) 
(Functor m, MonadStateE s m) => MonadStateE s (ReaderT * r m) 
(Functor m, MonadStateI s m) => MonadStateI s (ReaderT * r m) 
(Monoid w, MonadWriter w m) => MonadWriter w (ReaderT * r m) 
(Monoid w, MonadWriterE w m) => MonadWriterE w (ReaderT * r m) 
(Monoid w, MonadWriterI w m) => MonadWriterI w (ReaderT * r m) 
Monad m => MonadReader r (ReaderT * r m) 
Monad m => MonadReaderE r (ReaderT * r m) 
Monad m => MonadReaderI r (ReaderT * r m) 
MonadError e m => MonadError e (ReaderT * r m) 
MonadErrorI e m => MonadErrorI e (ReaderT * r m) 
MonadErrorE e m => MonadErrorE e (ReaderT * r m) 
FunctorJoin2 (ReaderT * r) 
FunctorUnit2 (ReaderT * r) 
MonadMaybe m => MonadMaybe (ReaderT * r m) 
MonadMaybeE m => MonadMaybeE (ReaderT * r m) 
MonadMaybeI m => MonadMaybeI (ReaderT * r m) 
MonadConcat m => MonadConcat (ReaderT * r m) 
MonadZero m => MonadZero (ReaderT * r m) 
Monad m => Monad (ReaderT * r m) 
Bind m => Bind (ReaderT * r m) 
Applicative m => Applicative (ReaderT * r m) 
Product m => Product (ReaderT * r m) 
Functor m => Functor (ReaderT * r m) 
Unit m => Unit (ReaderT * r m) 

runReaderT :: r -> ReaderT r m a -> m a Source

class Monad m => MonadReaderI r m where Source

Methods

readerI :: m ~> ReaderT r m Source

Instances

class Monad m => MonadReaderE r m where Source

Methods

readerE :: ReaderT r m ~> m Source

Instances

class (MonadReaderI r m, MonadReaderE r m) => MonadReader r m Source

Instances

MonadReader PEnv DocM 
MonadReader r m => MonadReader r (MaybeT m) 
MonadReader r m => MonadReader r (StStateT m) 
MonadReader r m => MonadReader r (StateT s m) 
(Monoid w, MonadReader r m) => MonadReader r (WriterT w m) 
MonadReader r m => MonadReader r (ErrorT e m) 
Monad m => MonadReader r (ReaderT * r m) 
(Monad m, Monoid o) => MonadReader r (RWST r o s m) 
MonadReader r m => MonadReader r (AddStateT k s12 s1 m) 

ask :: MonadReaderE r m => m r Source

askP :: MonadReaderE r m => P r -> m r Source

askL :: MonadReaderE r m => Lens r a -> m a Source

local :: MonadReader r m => (r -> r) -> m a -> m a Source

localP :: MonadReader r m => P r -> (r -> r) -> m a -> m a Source

localSet :: MonadReader r m => r -> m a -> m a Source

localL :: MonadReader r m => Lens r b -> (b -> b) -> m a -> m a Source

localSetL :: MonadReader r m => Lens r b -> b -> m a -> m a Source

newtype WriterT o m a Source

Constructors

WriterT 

Fields

runWriterT :: m (a, o)
 

Instances

FunctorFunctor2 * (WriterT w) 
(Functor m, Monoid w, MonadState s m) => MonadState s (WriterT w m) 
(Functor m, Monoid w, MonadStateE s m) => MonadStateE s (WriterT w m) 
(Functor m, Monoid w, MonadStateI s m) => MonadStateI s (WriterT w m) 
(Monad m, Monoid o) => MonadWriter o (WriterT o m) 
(Monad m, Monoid o) => MonadWriterE o (WriterT o m) 
(Monad m, Monoid o) => MonadWriterI o (WriterT o m) 
(Monoid w, MonadReader r m) => MonadReader r (WriterT w m) 
(Monoid w, MonadReaderE r m) => MonadReaderE r (WriterT w m) 
(Monoid w, MonadReaderI r m) => MonadReaderI r (WriterT w m) 
FunctorJoin2 (WriterT w) 
Monoid w => FunctorUnit2 (WriterT w) 
(Monoid w, MonadMaybe m) => MonadMaybe (WriterT w m) 
(Monoid w, MonadMaybeE m) => MonadMaybeE (WriterT w m) 
(Monoid w, MonadMaybeI m) => MonadMaybeI (WriterT w m) 
(MonadZero m, Monoid o) => MonadZero (WriterT o m) 
(Monad m, Monoid o) => Monad (WriterT o m) 
(Monad m, Monoid o) => Bind (WriterT o m) 
(Functor m, Applicative m, Monoid o) => Applicative (WriterT o m) 
(Functor m, Product m, Monoid o) => Product (WriterT o m) 
Functor m => Functor (WriterT o m) 
(Unit m, Monoid o) => Unit (WriterT o m) 

class Monad m => MonadWriterI o m | m -> o where Source

Methods

writerI :: m ~> WriterT o m Source

Instances

MonadWriterI POut DocM 
(Monoid w, MonadWriter w m) => MonadWriterI w (MaybeT m) 
(Monoid w, MonadWriter w m) => MonadWriterI w (StateT s m) 
(Monad m, Monoid o) => MonadWriterI o (WriterT o m) 
(Monoid w, MonadWriterI w m) => MonadWriterI w (ReaderT * r m) 
(Monad m, Monoid o) => MonadWriterI o (RWST r o s m) 
(MonadWriter o m, Monoid o) => MonadWriterI o (AddStateT k s12 s1 m) 

class Monad m => MonadWriterE o m | m -> o where Source

Methods

writerE :: WriterT o m ~> m Source

Instances

MonadWriterE POut DocM 
(Monoid w, MonadWriter w m) => MonadWriterE w (MaybeT m) 
(Monoid w, MonadWriter w m) => MonadWriterE w (StateT s m) 
(Monad m, Monoid o) => MonadWriterE o (WriterT o m) 
(Monoid w, MonadWriterE w m) => MonadWriterE w (ReaderT * r m) 
(Monad m, Monoid o) => MonadWriterE o (RWST r o s m) 
(MonadWriter o m, Monoid o) => MonadWriterE o (AddStateT k s12 s1 m) 

class (MonadWriterI o m, MonadWriterE o m) => MonadWriter o m | m -> o Source

Instances

MonadWriter POut DocM 
(Monoid w, MonadWriter w m) => MonadWriter w (MaybeT m) 
(Monoid w, MonadWriter w m) => MonadWriter w (StateT s m) 
(Monad m, Monoid o) => MonadWriter o (WriterT o m) 
(Monoid w, MonadWriter w m) => MonadWriter w (ReaderT * r m) 
(Monad m, Monoid o) => MonadWriter o (RWST r o s m) 
(MonadWriter o m, Monoid o) => MonadWriter o (AddStateT k s12 s1 m) 

tell :: MonadWriterE o m => o -> m () Source

tellP :: MonadWriterE o m => P o -> o -> m () Source

hijack :: MonadWriterI o m => m a -> m (a, o) Source

newtype StateT s m a Source

Constructors

StateT 

Fields

unStateT :: s -> m (a, s)
 

Instances

(Functorial * JoinLattice m, JoinLattice s) => Functorial * JoinLattice (StateT s m) 
(Functorial * Monoid m, Monoid s) => Functorial * Monoid (StateT s m) 
FunctorFunctor2 * (StateT s) 
Functor m => MonadState s (StateT s m) 
Functor m => MonadStateE s (StateT s m) 
Functor m => MonadStateI s (StateT s m) 
(Monoid w, MonadWriter w m) => MonadWriter w (StateT s m) 
(Monoid w, MonadWriter w m) => MonadWriterE w (StateT s m) 
(Monoid w, MonadWriter w m) => MonadWriterI w (StateT s m) 
MonadReader r m => MonadReader r (StateT s m) 
MonadReaderE r m => MonadReaderE r (StateT s m) 
MonadReaderI r m => MonadReaderI r (StateT s m) 
MonadError e m => MonadError e (StateT s m) 
MonadErrorI e m => MonadErrorI e (StateT s m) 
MonadErrorE e m => MonadErrorE e (StateT s m) 
FunctorJoin2 (StateT s) 
FunctorUnit2 (StateT s) 
(MonadListSet m, Functorial * JoinLattice m, JoinLattice s) => MonadListSet (StateT s m) 
(MonadListSetE m, Functorial * JoinLattice m) => MonadListSetE (StateT s m) 
(MonadListSetI m, Functorial * JoinLattice m, JoinLattice s) => MonadListSetI (StateT s m) 
(MonadList m, Functorial * Monoid m, Monoid s) => MonadList (StateT s m) 
(MonadListE m, Functorial * Monoid m) => MonadListE (StateT s m) 
(MonadListI m, Functorial * Monoid m, Monoid s) => MonadListI (StateT s m) 
MonadMaybe m => MonadMaybe (StateT s m) 
MonadMaybeE m => MonadMaybeE (StateT s m) 
MonadMaybeI m => MonadMaybeI (StateT s m) 
MonadPlus m => MonadPlus (StateT s m) 
MonadConcat m => MonadConcat (StateT s m) 
MonadZero m => MonadZero (StateT s m) 
Monad m => Monad (StateT s m) 
Bind m => Bind (StateT s m) 
Monad m => Applicative (StateT s m) 
Monad m => Product (StateT s m) 
Functor m => Functor (StateT s m) 
Unit m => Unit (StateT s m) 
(Functorial * JoinLattice m, JoinLattice s, JoinLattice a) => JoinLattice (StateT s m a) 
(Functorial * Monoid m, Monoid s, Monoid a) => Monoid (StateT s m a) 
(MonadStep ς m, Functor m) => MonadStep ((:.:) * * ς ((,) 𝓈)) (StateT 𝓈 m) 

class MonadStateI s m | m -> s where Source

Methods

stateI :: m ~> StateT s m Source

Instances

MonadStateI PState DocM 
(Functor m, MonadStateI s m, Functorial * JoinLattice m) => MonadStateI s (ListSetT m) 
(Functor m, MonadStateI s m, Functorial * Monoid m) => MonadStateI s (ListT m) 
(Functor m, MonadStateI s m) => MonadStateI s (MaybeT m) 
Functor m => MonadStateI CPSSt (StStateT m) 
(Functor m, Monoid w, MonadStateI s m) => MonadStateI s (WriterT w m) 
(Functor m, MonadStateI s m) => MonadStateI s (ErrorT e m) 
Functor m => MonadStateI s (StateT s m) 
(Monad m, MonadState s m) => MonadStateI s (KonT * r m) 
(Functor m, MonadStateI s m) => MonadStateI s (ReaderT * r m) 
(Functor m, MonadStateI s2 m, Isomorphism s12 (s1, s2)) => MonadStateI s12 (AddStateT * s12 s1 m) 
(Monad m, Monoid o) => MonadStateI s (RWST r o s m) 
(Monad m, MonadState s m, Isomorphism3 (* -> *) * (KFun * r) (k r)) => MonadStateI s (OpaqueKonT * * k r m) 
MonadStateI s m => MonadStateI s (IsoMonadStep k k * ς1 ς2 m) 
MonadStateI (ParserState t) (Parser t) 
MonadStateI (𝒮 val lτ dτ ψ) (PS val lτ dτ ψ) 
(Eq (val lτ dτ ψ), JoinLattice (val lτ dτ ψ)) => MonadStateI (𝒮 val lτ dτ ψ) (FS val lτ dτ ψ) 
(Eq (val lτ dτ ψ), JoinLattice (val lτ dτ ψ)) => MonadStateI (𝒮 val lτ dτ ψ) (FI val lτ dτ ψ) 

class MonadStateE s m | m -> s where Source

Methods

stateE :: StateT s m ~> m Source

Instances

MonadStateE PState DocM 
(Functor m, MonadStateE s m, Functorial * JoinLattice m, JoinLattice s) => MonadStateE s (ListSetT m) 
(Functor m, MonadStateE s m, Functorial * Monoid m, Monoid s) => MonadStateE s (ListT m) 
(Functor m, MonadStateE s m) => MonadStateE s (MaybeT m) 
Functor m => MonadStateE CPSSt (StStateT m) 
(Functor m, Monoid w, MonadStateE s m) => MonadStateE s (WriterT w m) 
(Functor m, MonadStateE s m) => MonadStateE s (ErrorT e m) 
Functor m => MonadStateE s (StateT s m) 
(Monad m, MonadState s m) => MonadStateE s (KonT * r m) 
(Functor m, MonadStateE s m) => MonadStateE s (ReaderT * r m) 
(Functor m, MonadStateE s2 m, Isomorphism s12 (s1, s2)) => MonadStateE s12 (AddStateT * s12 s1 m) 
(Monad m, Monoid o) => MonadStateE s (RWST r o s m) 
(Monad m, MonadState s m, Isomorphism3 (* -> *) * (KFun * r) (k r)) => MonadStateE s (OpaqueKonT * * k r m) 
MonadStateE s m => MonadStateE s (IsoMonadStep k k * ς1 ς2 m) 
MonadStateE (ParserState t) (Parser t) 
MonadStateE (𝒮 val lτ dτ ψ) (PS val lτ dτ ψ) 
(Eq (val lτ dτ ψ), JoinLattice (val lτ dτ ψ)) => MonadStateE (𝒮 val lτ dτ ψ) (FS val lτ dτ ψ) 
(Eq (val lτ dτ ψ), JoinLattice (val lτ dτ ψ)) => MonadStateE (𝒮 val lτ dτ ψ) (FI val lτ dτ ψ) 

class (MonadStateI s m, MonadStateE s m) => MonadState s m | m -> s Source

Instances

MonadState PState DocM 
(Functor m, MonadState s m, Functorial * JoinLattice m, JoinLattice s) => MonadState s (ListSetT m) 
(Functor m, MonadState s m, Functorial * Monoid m, Monoid s) => MonadState s (ListT m) 
(Functor m, MonadState s m) => MonadState s (MaybeT m) 
Functor m => MonadState CPSSt (StStateT m) 
(Functor m, Monoid w, MonadState s m) => MonadState s (WriterT w m) 
(Functor m, MonadState s m) => MonadState s (ErrorT e m) 
Functor m => MonadState s (StateT s m) 
(Functor m, MonadState s m) => MonadState s (ReaderT * r m) 
(Functor m, MonadState s2 m, Isomorphism s12 (s1, s2)) => MonadState s12 (AddStateT * s12 s1 m) 
(Monad m, Monoid o) => MonadState s (RWST r o s m) 
(Monad m, MonadState s m, Isomorphism3 (* -> *) * (KFun * r) (k r)) => MonadState s (OpaqueKonT * * k r m) 
MonadState s m => MonadState s (IsoMonadStep k k * ς1 ς2 m) 
MonadState (ParserState t) (Parser t) 
MonadState (𝒮 val lτ dτ ψ) (PS val lτ dτ ψ) 
(Eq (val lτ dτ ψ), JoinLattice (val lτ dτ ψ)) => MonadState (𝒮 val lτ dτ ψ) (FS val lτ dτ ψ) 
(Eq (val lτ dτ ψ), JoinLattice (val lτ dτ ψ)) => MonadState (𝒮 val lτ dτ ψ) (FI val lτ dτ ψ) 

get :: (Monad m, MonadStateE s m) => m s Source

getP :: (Monad m, MonadStateE s m) => P s -> m s Source

getL :: (Monad m, MonadStateE s m) => Lens s a -> m a Source

put :: (Monad m, MonadStateE s m) => s -> m () Source

putP :: (Monad m, MonadStateE s m) => P s -> s -> m () Source

putL :: (Monad m, MonadStateE s m) => Lens s a -> a -> m () Source

modifyM :: (Monad m, MonadStateE s m) => (s -> m s) -> m () Source

modify :: (Monad m, MonadStateE s m) => (s -> s) -> m () Source

modifyP :: (Monad m, MonadStateE s m) => P s -> (s -> s) -> m () Source

modifyL :: (Monad m, MonadStateE s m) => Lens s a -> (a -> a) -> m () Source

modifyLM :: (Monad m, MonadStateE s m) => Lens s a -> (a -> m a) -> m () Source

localStateSet :: (Monad m, MonadStateI s m) => s -> m a -> m (a, s) Source

next :: (Monad m, MonadStateE s m, Peano s) => m s Source

nextL :: (Monad m, MonadStateE s m, Peano a) => Lens s a -> m a Source

bumpL :: (Monad m, MonadStateE s m, Peano a) => Lens s a -> m () Source

newtype RWST r o s m a Source

Constructors

RWST 

Fields

unRWST :: ReaderT r (WriterT o (StateT s m)) a
 

Instances

(Monad m, Monoid o) => MonadRWS r o s (RWST r o s m) 
(Monad m, Monoid o) => MonadRWSE r o s (RWST r o s m) 
(Monad m, Monoid o) => MonadRWSI r o s (RWST r o s m) 
Monoid o => MonadFunctor2 * (RWST r o s) 
(Monad m, Monoid o) => MonadState s (RWST r o s m) 
(Monad m, Monoid o) => MonadStateE s (RWST r o s m) 
(Monad m, Monoid o) => MonadStateI s (RWST r o s m) 
(Monad m, Monoid o) => MonadWriter o (RWST r o s m) 
(Monad m, Monoid o) => MonadWriterE o (RWST r o s m) 
(Monad m, Monoid o) => MonadWriterI o (RWST r o s m) 
(Monad m, Monoid o) => MonadReader r (RWST r o s m) 
(Monad m, Monoid o) => MonadReaderE r (RWST r o s m) 
(Monad m, Monoid o) => MonadReaderI r (RWST r o s m) 
Monoid o => MonadJoin2 (RWST r o s) 
Monoid o => MonadUnit2 (RWST r o s) 
(MonadMaybe m, Monoid o) => MonadMaybe (RWST r o s m) 
(MonadMaybeE m, Monoid o) => MonadMaybeE (RWST r o s m) 
(MonadMaybeI m, Monoid o) => MonadMaybeI (RWST r o s m) 
(MonadZero m, Monoid o) => MonadZero (RWST r o s m) 
(Monad m, Monoid o) => Monad (RWST r o s m) 
(Monad m, Monoid o) => Bind (RWST r o s m) 
(Monad m, Monoid o) => Applicative (RWST r o s m) 
(Monad m, Monoid o) => Product (RWST r o s m) 
Functor m => Functor (RWST r o s m) 
(Unit m, Monoid o) => Unit (RWST r o s m) 

class (MonadReaderI r m, MonadWriterI o m, MonadStateI s m) => MonadRWSI r o s m where Source

Methods

rwsI :: m ~> RWST r o s m Source

Instances

(Monad m, Monoid o) => MonadRWSI r o s (RWST r o s m) 

class (MonadReaderE r m, MonadWriterE o m, MonadStateE s m) => MonadRWSE r o s m where Source

Methods

rwsE :: RWST r o s m ~> m Source

Instances

(Monad m, Monoid o) => MonadRWSE r o s (RWST r o s m) 

class (MonadReader r m, MonadWriter o m, MonadState s m) => MonadRWS r o s m Source

Instances

(Monad m, Monoid o) => MonadRWS r o s (RWST r o s m) 

class Monad m => MonadListI m where Source

Methods

listI :: m ~> ListT m Source

Instances

class Monad m => MonadListE m where Source

Methods

listE :: ListT m ~> m Source

Instances

class (MonadListI m, MonadListE m) => MonadList m Source

Instances

liftList :: (Monad m, MonadListE m) => [a] -> m a Source

class MonadIO m where Source

Methods

liftIO :: IO ~> m Source

Instances

class MonadQ m where Source

Methods

liftQ :: Q ~> m Source

Instances

newtype SetT m a Source

Constructors

SetT 

Fields

runSetT :: m (Set a)
 

mapSetT :: (m (Set a) -> m (Set b)) -> SetT m a -> SetT m b Source

class Bind m => MonadSetI m where Source

Methods

setI :: m ~> SetT m Source

class Bind m => MonadSetE m where Source

Methods

setE :: SetT m ~> m Source

newtype KonT r m a Source

Constructors

KonT 

Fields

runKonT :: (a -> m r) -> m r
 

Instances

MonadIsoFunctor2 * (KonT * r) 
Monad m => MonadKon r (KonT * r m) 
Monad m => MonadKonE r (KonT * r m) 
Monad m => MonadKonI r (KonT * r m) 
(Monad m, MonadState s m) => MonadStateE s (KonT * r m) 
(Monad m, MonadState s m) => MonadStateI s (KonT * r m) 
Unit m => Monad (KonT * r m) 
Unit m => Bind (KonT * r m) 
Unit m => Applicative (KonT * r m) 
Unit m => Product (KonT * r m) 
Unit m => Functor (KonT * r m) 
Unit m => Unit (KonT * r m) 

class Monad m => MonadKonI r m | m -> r where Source

Methods

konI :: m ~> KonT r m Source

Instances

Monad m => MonadKonI r (KonT * r m) 
(Monad m, Isomorphism3 (* -> *) * (KFun * r) (k r)) => MonadKonI r (OpaqueKonT * * k r m) 

class Monad m => MonadKonE r m | m -> r where Source

Methods

konE :: KonT r m ~> m Source

Instances

Monad m => MonadKonE r (KonT * r m) 
(Monad m, Isomorphism3 (* -> *) * (KFun * r) (k r)) => MonadKonE r (OpaqueKonT * * k r m) 

class (MonadKonI r m, MonadKonE r m) => MonadKon r m | m -> r Source

Instances

Monad m => MonadKon r (KonT * r m) 
(Monad m, Isomorphism3 (* -> *) * (KFun * r) (k r)) => MonadKon r (OpaqueKonT * * k r m) 

callCC :: MonadKonE r m => ((a -> m r) -> m r) -> m a Source

withC :: MonadKonI r m => (a -> m r) -> m a -> m r Source

reset :: MonadKon r m => m r -> m r Source

modifyC :: MonadKon r m => (r -> m r) -> m a -> m a Source

newtype KFun r m a Source

Constructors

KFun 

Fields

runKFun :: a -> m r
 

Instances

Morphism3 (* -> *) * (CPSKon r) (KFun * r) 
Isomorphism3 (* -> *) * (KFun * r) (CPSKon r) 
Morphism3 (* -> *) * (KFun * r) (CPSKon r) 

newtype OpaqueKonT k r m a Source

Constructors

OpaqueKonT 

Fields

runOpaqueKonT :: k r m a -> m r
 

Instances

(Monad m, Isomorphism3 (* -> *) * (KFun * r) (k r), Balloon k r) => MonadOpaqueKon k r (OpaqueKonT * * k r m) 
(Monad m, Isomorphism3 (* -> *) * (KFun * r) (k r), Balloon k r) => MonadOpaqueKonE k r (OpaqueKonT * * k r m) 
(Monad m, Isomorphism3 (* -> *) * (KFun * r) (k r), Balloon k r) => MonadOpaqueKonI k r (OpaqueKonT * * k r m) 
Isomorphism3 (* -> *) * (k r) (KFun * r) => MonadIsoFunctor2 * (OpaqueKonT * * k r) 
(Monad m, Isomorphism3 (* -> *) * (KFun * r) (k r)) => MonadKon r (OpaqueKonT * * k r m) 
(Monad m, Isomorphism3 (* -> *) * (KFun * r) (k r)) => MonadKonE r (OpaqueKonT * * k r m) 
(Monad m, Isomorphism3 (* -> *) * (KFun * r) (k r)) => MonadKonI r (OpaqueKonT * * k r m) 
(Monad m, MonadState s m, Isomorphism3 (* -> *) * (KFun * r) (k r)) => MonadState s (OpaqueKonT * * k r m) 
(Monad m, MonadState s m, Isomorphism3 (* -> *) * (KFun * r) (k r)) => MonadStateE s (OpaqueKonT * * k r m) 
(Monad m, MonadState s m, Isomorphism3 (* -> *) * (KFun * r) (k r)) => MonadStateI s (OpaqueKonT * * k r m) 
(Monad m, Isomorphism3 (* -> *) * (KFun * r) (k r)) => Monad (OpaqueKonT * * k r m) 
(Monad m, Isomorphism3 (* -> *) * (KFun * r) (k r)) => Bind (OpaqueKonT * * k r m) 
(Monad m, Isomorphism3 (* -> *) * (KFun * r) (k r)) => Applicative (OpaqueKonT * * k r m) 
(Monad m, Isomorphism3 (* -> *) * (KFun * r) (k r)) => Product (OpaqueKonT * * k r m) 
(Monad m, Isomorphism3 (* -> *) * (KFun * r) (k r)) => Functor (OpaqueKonT * * k r m) 
(Monad m, Morphism3 (* -> *) * (k r) (KFun * r)) => Unit (OpaqueKonT * * k r m) 

class (MonadKonI r m, Monad m) => MonadOpaqueKonI k r m | m -> k, m -> r where Source

Methods

withOpaqueC :: k r m a -> m a -> m r Source

Instances

(Monad m, Isomorphism3 (* -> *) * (KFun * r) (k r), Balloon k r) => MonadOpaqueKonI k r (OpaqueKonT * * k r m) 

class (MonadKonE r m, Monad m) => MonadOpaqueKonE k r m | m -> k, m -> r where Source

Methods

callOpaqueCC :: (k r m a -> m r) -> m a Source

Instances

(Monad m, Isomorphism3 (* -> *) * (KFun * r) (k r), Balloon k r) => MonadOpaqueKonE k r (OpaqueKonT * * k r m) 

class (MonadKon r m, MonadOpaqueKonI k r m, MonadOpaqueKonE k r m) => MonadOpaqueKon k r m | m -> k, m -> r Source

Instances

(Monad m, Isomorphism3 (* -> *) * (KFun * r) (k r), Balloon k r) => MonadOpaqueKon k r (OpaqueKonT * * k r m) 

class Iterable a t | t -> a where Source

Minimal complete definition

Nothing

Methods

foldlk :: forall b. (b -> a -> (b -> b) -> b) -> b -> t -> b Source

foldl :: (b -> a -> b) -> b -> t -> b Source

foldr :: (a -> b -> b) -> b -> t -> b Source

iter :: (a -> b -> b) -> b -> t -> b Source

size :: Integral n => t -> n Source

Instances

Iterable Char String 
Iterable a (Set a) 
Iterable a [a] 
Iterable a (ListSet a) 
Iterable ψ ( ψ) 
Iterable ψ ( k ψ) 
Iterable (k, v) (Map k v) 
Iterable (val lτ dτ ψ) (Power k k k val lτ dτ ψ) 

concat :: (Iterable a t, Monoid a) => t -> a Source

mconcat :: (Iterable (m a) t, MonadZero m, MonadConcat m) => t -> m a Source

mlist :: (Iterable a t, MonadZero m, Unit m, MonadConcat m) => t -> m a Source

mtry :: MonadMaybe m => [m a] -> m a Source

joins :: (Iterable a t, JoinLattice a) => t -> a Source

msum :: (Iterable (m a) t, MonadZero m, MonadPlus m) => t -> m a Source

mset :: (Iterable a t, MonadZero m, Unit m, MonadPlus m) => t -> m a Source

iterOn :: Iterable a t => t -> b -> (a -> b -> b) -> b Source

iterFrom :: Iterable a t => b -> (a -> b -> b) -> t -> b Source

foldlOn :: Iterable a t => t -> b -> (b -> a -> b) -> b Source

foldlFrom :: Iterable a t => b -> (b -> a -> b) -> t -> b Source

foldrOn :: Iterable a t => t -> b -> (a -> b -> b) -> b Source

foldrFrom :: Iterable a t => b -> (a -> b -> b) -> t -> b Source

findMax :: (Iterable a t, PartialOrder b) => (a -> b) -> a -> t -> a Source

findMaxFrom :: (Iterable a t, PartialOrder b) => a -> (a -> b) -> t -> a Source

isElem :: (Iterable a t, Eq a) => a -> t -> Bool Source

elemAtN :: (Iterable a t, Peano n, Eq n) => n -> t -> Maybe a Source

traverse :: (Iterable a t, Monad m) => (a -> m ()) -> t -> m () Source

traverseOn :: (Iterable a t, Monad m) => t -> (a -> m ()) -> m () Source

exec :: (Iterable (m ()) t, Monad m) => t -> m () Source

toList :: Iterable a t => t -> [a] Source

class Buildable a t | t -> a where Source

Methods

nil :: t Source

cons :: a -> t -> t Source

Instances

Ord a => Buildable a (Set a) 
Buildable a [a] 
Buildable a (ListSet a) 
Buildable ψ ( ψ) 
Buildable ψ ( k ψ) 
Ord k => Buildable (k, v) (Map k v) 

fromList :: Buildable a t => [a] -> t Source

class Container e t | t -> e where Source

Methods

(?) :: t -> e -> Bool infix 9 Source

Instances

Container a (Set a) 
Eq a => Container a [a] 
Eq a => Container a (ListSet a) 
Eq v => Container (k, v) (Map k v) 
Container (val lτ dτ ψ) (Power k k k val lτ dτ ψ) 

elem :: Container e t => e -> t -> Bool Source

class Indexed k v t | t -> k, t -> v where Source

Methods

(#) :: t -> k -> Maybe v infixl 9 Source

Instances

Eq k => Indexed k v [(k, v)] 
Indexed k v (Map k v) 

index :: Indexed k v t => t -> k -> Maybe v Source

(#!) :: Indexed k v t => t -> k -> v infixl 9 Source

lookup :: Indexed k v t => k -> t -> Maybe v Source

class (Iterable a t, Buildable a t) => ListLike a t | t -> a where Source

Minimal complete definition

uncons

Methods

isNil :: t -> Bool Source

uncons :: t -> Maybe (a, t) Source

Instances

ListLike a [a] 
ListLike ψ ( ψ) 
ListLike ψ ( k ψ) 

toListLike :: ListLike a t => [a] -> t Source

fromListLike :: ListLike a t => t -> [a] Source

single :: a -> [a] Source

filter :: (a -> Bool) -> [a] -> [a] Source

reverse :: [a] -> [a] Source

uniques :: Eq a => [a] -> [a] Source

zip :: [a] -> [b] -> Maybe [(a, b)] Source

unzip :: [(a, b)] -> ([a], [b]) Source

replicate :: (Eq n, Peano n) => n -> a -> [a] Source

firstN :: (Eq n, Integral n) => n -> [a] -> [a] Source

intersperse :: a -> [a] -> [a] Source

mapHead :: (a -> a) -> [a] -> [a] Source

mapTail :: (a -> a) -> [a] -> [a] Source

head :: [a] -> Maybe a Source

tail :: [a] -> Maybe [a] Source

length :: Peano n => [a] -> n Source

class (Iterable e t, Container e t) => SetLike e t | t -> e where Source

Minimal complete definition

learnSet, empty, insert, remove

Methods

learnSet :: t -> b -> (Ord e => b) -> b Source

empty :: t Source

isEmpty :: t -> Bool Source

insert :: Ord e => e -> t -> t Source

remove :: t -> Maybe (e, t) Source

union :: t -> t -> t Source

intersection :: t -> t -> t Source

(\-\) :: t -> t -> t infix 6 Source

Instances

SetLike a (Set a) 
SetLike (val lτ dτ ψ) (Power k k k val lτ dτ ψ) 

singleton :: Ord e => e -> Set e Source

setMap :: Ord b => (a -> b) -> Set a -> Set b Source

toSet :: Ord a => [a] -> Set a Source

fromSet :: Set a -> [a] Source

class (Iterable (k, v) t, Indexed k v t) => MapLike k v t | t -> k, t -> v where Source

Minimal complete definition

learnMap, mapEmpty, mapIsEmpty, mapInsertWith, mapRemove

Methods

learnMap :: t -> b -> (Ord k => b) -> b Source

mapEmpty :: t Source

mapIsEmpty :: t -> Bool Source

mapInsertWith :: Ord k => (v -> v -> v) -> k -> v -> t -> t Source

mapRemove :: t -> Maybe ((k, v), t) Source

mapUnionWith :: (v -> v -> v) -> t -> t -> t Source

mapIntersectionWith :: (v -> v -> v) -> t -> t -> t Source

mapModify :: (v -> v) -> k -> t -> t Source

mapKeys :: t -> Set k Source

Instances

Ord k => MapLike k v [(k, v)] 
MapLike k v (Map k v) 

mapInsert :: (MapLike k v t, Ord k) => k -> v -> t -> t Source

onlyKeys :: (SetLike k t, MapLike k v u) => t -> u -> u Source

toMap :: Ord k => [(k, v)] -> Map k v Source

fromMap :: Map k v -> [(k, v)] Source

data P a Source

Constructors

P 

data Cursor a b Source

Constructors

Cursor 

Fields

focus :: a
 
construct :: a -> b
 

data Lens a b Source

Constructors

Lens 

Fields

runLens :: a -> Cursor b a
 

Instances

lens :: (a -> b) -> (a -> b -> a) -> Lens a b Source

isoLens :: (a -> b) -> (b -> a) -> Lens a b Source

access :: Lens a b -> a -> b Source

update :: Lens a b -> (b -> b) -> a -> a Source

(~:) :: Lens a b -> (b -> b) -> a -> a infixr 0 Source

updateM :: Monad m => Lens a b -> (b -> m b) -> a -> m a Source

set :: Lens a b -> b -> a -> a Source

(=:) :: Lens a b -> b -> a -> a infixr 0 Source

(|:) :: a -> (a -> a) -> a infixr 0 Source

data Prism a b Source

Constructors

Prism 

Fields

coerce :: a -> Maybe b
 
inject :: b -> a
 

Instances

unsafe_coerce :: Prism a b -> a -> b Source

prism :: (a -> Maybe b) -> (b -> a) -> Prism a b Source

isoPrism :: (a -> b) -> (b -> a) -> Prism a b Source

isL :: Prism a b -> a -> Bool Source

alter :: Prism a b -> (b -> b) -> a -> a Source

pset :: Prism a b -> b -> a -> a Source

(~^) :: Prism a b -> (b -> b) -> a -> a Source

applyTo :: a -> (a -> b) -> b Source

(.:) :: (c -> d) -> (a -> b -> c) -> a -> b -> d infixr 9 Source

(..:) :: (d -> e) -> (a -> b -> c -> d) -> a -> b -> c -> e infixr 9 Source

(...:) :: (e -> f) -> (a -> b -> c -> d -> e) -> a -> b -> c -> d -> f Source

(....:) :: (f -> g) -> (a -> b -> c -> d -> e -> f) -> a -> b -> c -> d -> e -> g Source

rotateR :: (a -> b -> c -> d) -> c -> a -> b -> d Source

rotateL :: (a -> b -> c -> d) -> b -> c -> a -> d Source

mirror :: (a -> b -> c -> d) -> c -> b -> a -> d Source

on :: (b -> b -> c) -> (a -> b) -> a -> a -> c Source

composition :: [a -> a] -> a -> a Source

data Endo a Source

Constructors

Endo 

Fields

unEndo :: a -> a
 

Instances

Monoid (Endo a) 

runEndo :: a -> Endo a -> a Source

data KleisliEndo m a Source

Constructors

KleisliEndo 

Fields

unKleisliEndo :: a -> m a
 

Instances

Monad m => Monoid (KleisliEndo m a) 

runKleisliEndo :: a -> KleisliEndo m a -> m a Source

fif :: Bool -> a -> a -> a Source

cond :: (a -> Bool) -> c -> c -> a -> c Source

ifThenElse :: Bool -> a -> a -> a Source

type Chars = [Char] Source

show :: Show a => a -> String Source

swap :: (a, b) -> (b, a) Source

fstL :: Lens (a, b) a Source

sndL :: Lens (a, b) b Source

mapFst :: (a -> a') -> (a, b) -> (a', b) Source

mapSnd :: (b -> b') -> (a, b) -> (a, b') Source

data a :+: b infixr 6 Source

Constructors

Inl a 
Inr b 

Instances

MonadErrorI a ((:+:) a) 
MonadErrorE a ((:+:) a) 
Monad ((:+:) a) 
Bind ((:+:) a) 
Applicative ((:+:) a) 
Product ((:+:) a) 
Functor ((:+:) a) 
Unit ((:+:) a) 
(Eq a, Eq b) => Eq ((:+:) a b) 
(Ord a, Ord b) => Ord ((:+:) a b) 
(Pretty a, Pretty b) => Pretty ((:+:) a b) 

sumElim :: (a -> c) -> (b -> c) -> (a :+: b) -> c Source

inlL :: Prism (a :+: b) a Source

inrL :: Prism (a :+: b) b Source

mapInl :: (a -> a') -> (a :+: b) -> a' :+: b Source

mapInr :: (b -> b') -> (a :+: b) -> a :+: b' Source

newtype (t :.: u) a infixr 9 Source

Constructors

Compose 

Fields

runCompose :: t (u a)
 

Instances

(Functorial * JoinLattice t, Functorial * JoinLattice u) => Functorial * JoinLattice ((:.:) * * t u) 
Isomorphism2 * (PSΣ val lτ dτ ψ) (PSΣ' val lτ dτ ψ) 
Isomorphism2 * (FIΣ val lτ dτ ψ) (FIΣ' val lτ dτ ψ) 
Isomorphism2 * (FSΣ val lτ dτ ψ) (FSΣ' val lτ dτ ψ) 
Morphism2 * (PSΣ val lτ dτ ψ) (PSΣ' val lτ dτ ψ) 
Morphism2 * (PSΣ' val lτ dτ ψ) (PSΣ val lτ dτ ψ) 
Morphism2 * (FIΣ val lτ dτ ψ) (FIΣ' val lτ dτ ψ) 
Morphism2 * (FIΣ' val lτ dτ ψ) (FIΣ val lτ dτ ψ) 
Morphism2 * (FSΣ val lτ dτ ψ) (FSΣ' val lτ dτ ψ) 
Morphism2 * (FSΣ' val lτ dτ ψ) (FSΣ val lτ dτ ψ) 
(Functor t, Functor u) => Functor ((:.:) * * t u) 
(Unit t, Unit u) => Unit ((:.:) * * t u) 
(Inject t, Inject u) => Inject ((:.:) * * t u) 
(Commute t ListSet, Commute u ListSet, Functor t) => Commute ((:.:) * * t u) ListSet 
(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) 
Eq (t (u a)) => Eq ((:.:) k k t u a) 
Ord (t (u a)) => Ord ((:.:) k k t u a) 
JoinLattice (t (u a)) => JoinLattice ((:.:) k k t u a) 
PartialOrder (t (u a)) => PartialOrder ((:.:) k k t u a) 

onComposeIso :: (t (u a) -> t (u b)) -> (t :.: u) a -> (t :.: u) b Source

newtype (t :..: u) m a infixr 9 Source

Constructors

Compose2 

Fields

runCompose2 :: t (u m) a
 

maybeElim :: b -> (a -> b) -> Maybe a -> b Source

maybeElimOn :: Maybe a -> b -> (a -> b) -> b Source

whenNothing :: a -> Maybe a -> a Source

nilL :: Prism [a] () Source

consL :: Prism [a] (a, [a]) Source

pluck :: [a] -> [[a]] -> Maybe ([a], [[a]]) Source

transpose :: [[a]] -> [[a]] Source

data Set a where Source

Constructors

EmptySet :: Set a 
Set :: Ord a => Set a -> Set a 

Instances

newtype ListSet a Source

Constructors

ListSet 

Fields

runListSet :: [a]
 

Instances

MonadPlus ListSet 
Monad ListSet 
Bind ListSet 
Applicative ListSet 
Product ListSet 
Functor ListSet 
Unit ListSet 
Inject ListSet 
Commute ID ListSet 
Eq a => Container a (ListSet a) 
Buildable a (ListSet a) 
Iterable a (ListSet a) 
Isomorphism2 * (PSΣ val lτ dτ ψ) (PSΣ' val lτ dτ ψ) 
Isomorphism2 * (FIΣ val lτ dτ ψ) (FIΣ' val lτ dτ ψ) 
Isomorphism2 * (FSΣ val lτ dτ ψ) (FSΣ' val lτ dτ ψ) 
Morphism2 * (PSΣ val lτ dτ ψ) (PSΣ' val lτ dτ ψ) 
Morphism2 * (PSΣ' val lτ dτ ψ) (PSΣ val lτ dτ ψ) 
Morphism2 * (FIΣ val lτ dτ ψ) (FIΣ' val lτ dτ ψ) 
Morphism2 * (FIΣ' val lτ dτ ψ) (FIΣ val lτ dτ ψ) 
Morphism2 * (FSΣ val lτ dτ ψ) (FSΣ' val lτ dτ ψ) 
Morphism2 * (FSΣ' val lτ dτ ψ) (FSΣ val lτ dτ ψ) 
JoinLattice (ListSet a) 
Monoid (ListSet a) 
Ord a => PartialOrder (ListSet a) 
(Ord a, Pretty a) => Pretty (ListSet a) 
Commute ((,) 𝓈) ListSet 
(Commute t ListSet, Commute u ListSet, Functor t) => Commute ((:.:) * * t u) ListSet 
(MonadStep ς m, Functorial * JoinLattice m) => MonadStep ((:.:) * * ς ListSet) (ListSetT m) 
(MonadStep ς m, Commute ς ListSet, Functorial * JoinLattice ς) => MonadStep ((:.:) * * ListSet ς) (ListSetT m) 

data Map k v where Source

Constructors

EmptyMap :: Map k v 
Map :: Ord k => Map k v -> Map k v 

Instances

MapLike k v (Map k v) 
Indexed k v (Map k v) 
Isomorphism2 * (FIΣ val lτ dτ ψ) (FIΣ' val lτ dτ ψ) 
Isomorphism2 * (FSΣ val lτ dτ ψ) (FSΣ' val lτ dτ ψ) 
Morphism2 * (FIΣ val lτ dτ ψ) (FIΣ' val lτ dτ ψ) 
Morphism2 * (FIΣ' val lτ dτ ψ) (FIΣ val lτ dτ ψ) 
Morphism2 * (FSΣ val lτ dτ ψ) (FSΣ' val lτ dτ ψ) 
Morphism2 * (FSΣ' val lτ dτ ψ) (FSΣ val lτ dτ ψ) 
(Eq k, Eq v) => Eq (Map k v) 
(Ord k, Ord v) => Ord (Map k v) 
(Eq v, JoinLattice v) => JoinLattice (Map k v) 
(Ord k, PartialOrder v) => PartialOrder (Map k v) 
(Pretty k, Pretty v) => Pretty (Map k v) 
Initial (Map k v) 
Eq v => Container (k, v) (Map k v) 
Ord k => Buildable (k, v) (Map k v) 
Iterable (k, v) (Map k v) 
Morphism (PI𝒮 lτ dτ ψ, Store val lτ dτ ψ) (𝒮 val lτ dτ ψ) 
Isomorphism (𝒮 val lτ dτ ψ) (PI𝒮 lτ dτ ψ, Store val lτ dτ ψ) 
Morphism (𝒮 val lτ dτ ψ) (PI𝒮 lτ dτ ψ, Store val lτ dτ ψ) 

data Annotated ann a Source

Constructors

Annotated 

Fields

annotation :: ann
 
annValue :: a
 

data Stamped a f Source

Constructors

Stamped 

Fields

stampedID :: a
 
stamped :: f
 

Instances

Balloon CPSKon SGCall 
Eq a => Eq (Stamped a f) 
Ord a => Ord (Stamped a f) 
(Pretty a, Pretty f) => Pretty (Stamped a f) 

newtype Fix f Source

Constructors

Fix 

Fields

runFix :: f (Fix f)
 

Instances

data StampedFix a f Source

Constructors

StampedFix 

Fields

stampedFixID :: a
 
stampedFix :: f (StampedFix a f)
 

Instances

module GHC.Exts

module Data.Char