maam-0.2.0.0: An application of the Galois Transformers framework to two example semantics.

Safe HaskellNone
LanguageHaskell2010

FP.Core

Documentation

module Prelude

data P a Source

Constructors

P 

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

class ToInt a where Source

Methods

toInt :: a -> Int Source

Instances

class Peano a where Source

Methods

zer :: a Source

suc :: a -> a Source

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

piterOn :: (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 Multiplicative a => Divisible a where Source

Methods

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

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

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 Double 
PartialOrder Int 
PartialOrder Integer 
PartialOrder Rational 
PartialOrder Lit 
PartialOrder BdrNum 
PartialOrder LocNum 
PartialOrder BinOp 
Ord a => PartialOrder (SetWithTop a) 
Ord a => PartialOrder (ListSetWithTop a) 
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) 
(Eq lτ, Eq dτ) => PartialOrder (CVal lτ dτ) 
(Eq lτ, Eq dτ) => PartialOrder (AVal lτ dτ) 
(PartialOrder a, PartialOrder b, PartialOrder c) => PartialOrder (a, b, c) 
(Ord lτ, Ord dτ, Ord a, Ord (ν lτ dτ)) => PartialOrder (PSΣ𝒫 ν lτ dτ a) 
(Ord lτ, Ord dτ, Ord a, Ord (ν lτ dτ)) => PartialOrder (PSΣ ν lτ dτ a) 
(Ord lτ, Ord dτ, PartialOrder val) => PartialOrder (FIΣ𝒫 val lτ dτ a) 
(Ord lτ, Ord dτ, Ord a, PartialOrder val) => PartialOrder (FIΣ val lτ dτ a) 
(Ord lτ, Ord dτ, Ord a, PartialOrder val) => PartialOrder (FSΣ𝒫 val lτ dτ a) 
(Ord val, Ord lτ, Ord dτ, Ord a) => PartialOrder (FSΣ val lτ dτ a) 
PartialOrder (PSΣ𝒫 val lτ dτ a) 
(Ord val, Ord lτ, Ord dτ, Ord a) => PartialOrder (PSΣ val lτ dτ a) 
(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 (Power k k val lτ dτ) 

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

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

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

discreteOrder :: Eq a => a -> a -> POrdering 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

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

poiterHistory :: PartialOrder a => (a -> 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 m. t m ~> u m Source

class Morphism a b where Source

Methods

morph :: a -> b Source

Instances

Morphism (𝒮Cxt lτ dτ, Store val lτ dτ) (𝒮 val lτ dτ) 
Morphism (𝒮 val lτ dτ) (𝒮Cxt lτ dτ, Store val lτ dτ) 
(Ord (ν lτ dτ), Ord lτ, Ord dτ, Ord a) => Morphism (PSΣ𝒫 ν lτ dτ a) (PSΣ ν lτ dτ a) 
(Ord (ν lτ dτ), Ord lτ, Ord dτ, Ord a) => Morphism (PSΣ ν lτ dτ a) (PSΣ𝒫 ν lτ dτ a) 
(Ord val, Ord lτ, Ord dτ, Ord a) => Morphism (FIΣ𝒫 val lτ dτ a) (FIΣ val lτ dτ a) 
(Ord val, Ord lτ, Ord dτ, Ord a) => Morphism (FIΣ val lτ dτ a) (FIΣ𝒫 val lτ dτ a) 
(Ord val, Ord lτ, Ord dτ, Ord a) => Morphism (FSΣ𝒫 val lτ dτ a) (FSΣ val lτ dτ a) 
(Ord val, Join val, Ord lτ, Ord dτ, Ord a) => Morphism (FSΣ val lτ dτ a) (FSΣ𝒫 val lτ dτ a) 
(Ord val, Ord lτ, Ord dτ, Ord a) => Morphism (PSΣ𝒫 val lτ dτ a) (PSΣ val lτ dτ a) 
(Ord val, Ord lτ, Ord dτ, Ord a) => Morphism (PSΣ val lτ dτ a) (PSΣ𝒫 val lτ dτ a) 

class Morphism2 m n where Source

Methods

morph2 :: m ~> n Source

Instances

Morphism2 * (PSΣ ν lτ dτ) (PSΣ' ν lτ dτ) 
Morphism2 * (PSΣ' ν lτ dτ) (PSΣ ν 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τ) 
Morphism2 * (PSΣ val lτ dτ) (PSΣ' val lτ dτ) 
Morphism2 * (PSΣ' val lτ dτ) (PSΣ val lτ dτ) 

class Morphism3 t u where Source

Methods

morph3 :: t ~~> u Source

Instances

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

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

Instances

Isomorphism (𝒮 val lτ dτ) (𝒮Cxt lτ dτ, Store val lτ dτ) 
(Ord (ν lτ dτ), Ord lτ, Ord dτ, Ord a) => Isomorphism (PSΣ ν lτ dτ a) (PSΣ𝒫 ν lτ dτ a) 
(Ord val, Ord lτ, Ord dτ, Ord a) => Isomorphism (FIΣ val lτ dτ a) (FIΣ𝒫 val lτ dτ a) 
(Ord val, Join val, Ord lτ, Ord dτ, Ord a) => Isomorphism (FSΣ val lτ dτ a) (FSΣ𝒫 val lτ dτ a) 
(Ord val, Ord lτ, Ord dτ, Ord a) => Isomorphism (PSΣ val lτ dτ a) (PSΣ𝒫 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Σ ν lτ dτ) (PSΣ' ν lτ dτ) 
Isomorphism2 * (FIΣ val lτ dτ) (FIΣ' val lτ dτ) 
Isomorphism2 * (FSΣ val lτ dτ) (FSΣ' val lτ dτ) 
Isomorphism2 * (PSΣ val lτ dτ) (PSΣ' 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 * (* -> *) (ContFun * r) (CPSKon r) 
Isomorphism3 * (* -> *) (ContFun * r) (CPSKon r) 

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

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

class Bot a where Source

Methods

bot :: a Source

Instances

Bot Bool 
Bot Int 
Functorial * Bot ID 
Bot (SumOfProd a) 
Bot (SetWithTop a) 
Bot (ListSetWithTop a) 
Bot (ListSet a) 
Bot (Set a) 
Bot a => Bot (ID a) 
Bot ( ψ) 
Bot ( ψ) 
Bot b => Bot (a -> b) 
(Bot a, Bot b) => Bot (a, b) 
Bot (Map k v) 
Bot ( k ψ) 
Bot ( k ψ) 
(Time ψ lτ, Time ψ dτ) => Bot (Moment lτ dτ) 
(Bot lτ, Bot dτ) => Bot (𝒮Cxt lτ dτ) 
Bot ( k ψ) 
Bot ( k ψ) 
(Bot a, Bot b, Bot c) => Bot (a, b, c) 
(Functorial * Bot m, Bot s, Bot a) => Bot (StateT s m a) 
(Time ψ lτ, Time ψ dτ) => Bot (𝒮 ν lτ dτ) 
(Bot lτ, Bot dτ) => Bot (𝒮 val lτ dτ) 
Bot (PSΣ𝒫 ν lτ dτ a) 
Bot (PSΣ ν lτ dτ a) 
Bot (FIΣ𝒫 val lτ dτ a) 
Bot (FIΣ val lτ dτ a) 
Bot (FSΣ𝒫 val lτ dτ a) 
Bot (FSΣ val lτ dτ a) 
Bot (PSΣ𝒫 val lτ dτ a) 
Bot (PSΣ val lτ dτ a) 
(Bot a, Bot b, Bot c, Bot d, Bot e) => Bot (a, b, c, d, e) 
Bot (t (u a)) => Bot ((:.:) k k t u a) 
Bot (SumOfProdVal k k ν lτ dτ) 
Bot (Power k k val lτ dτ) 

class Join a where Source

Methods

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

Instances

Join Bool 
Join Double 
Join Int 
Join Integer 
Join Rational 
Functorial * Join ID 
Join (SumOfProd a) 
Join (SetWithTop a) 
Join (ListSetWithTop a) 
Join (ListSet a) 
Join (Set a) 
Join a => Join (ID a) 
Join b => Join (a -> b) 
(Join a, Join b) => Join (a, b) 
Join v => Join (Map k v) 
(Join a, Join b, Join c) => Join (a, b, c) 
(Functorial * Join m, Join s, Join a) => Join (StateT s m a) 
Join (PSΣ𝒫 ν lτ dτ a) 
Join (PSΣ ν lτ dτ a) 
Join val => Join (FIΣ𝒫 val lτ dτ a) 
Join val => Join (FIΣ val lτ dτ a) 
Join val => Join (FSΣ𝒫 val lτ dτ a) 
Join (FSΣ val lτ dτ a) 
Join (PSΣ𝒫 val lτ dτ a) 
Join (PSΣ val lτ dτ a) 
(Join a, Join b, Join c, Join d, Join e) => Join (a, b, c, d, e) 
Join (t (u a)) => Join ((:.:) k k t u a) 
Join (SumOfProdVal k k ν lτ dτ) 
Join (Power k k val lτ dτ) 

class Top a where Source

Methods

top :: a Source

Instances

Top Bool 
Top Int 
Functorial * Top ID 
Top (SetWithTop a) 
Top (ListSetWithTop a) 
Top a => Top (ID a) 
Top b => Top (a -> b) 
Top (t (u a)) => Top ((:.:) k k t u a) 

class Meet a where Source

Methods

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

Instances

Meet Bool 
Meet Double 
Meet Int 
Meet Integer 
Meet Rational 
Meet (SumOfProd a) 
Meet (SetWithTop a) 
Meet (ListSetWithTop a) 
Meet (Set a) 
Meet b => Meet (a -> b) 
Meet (t (u a)) => Meet ((:.:) k k t u a) 
Meet (SumOfProdVal k k ν lτ dτ) 

class Neg a where Source

Methods

neg :: a -> a Source

Instances

Neg Double 
Neg Int 
Neg Integer 
Neg Rational 
(Ord a, Neg a) => Neg (SumOfProd a) 
Neg b => Neg (a -> b) 
Neg (OCVal lτ dτ) 
(Ord (ν lτ dτ), Neg (ν lτ dτ)) => Neg (SumOfProdVal k k ν lτ dτ) 

class Difference a where Source

Methods

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

Instances

Difference (SetWithTop a) 
Ord a => Difference (ListSetWithTop a) 
Difference (Set a) 
(Difference a, Difference b) => Difference (a, b) 
Difference v => Difference (Map k v) 
Difference (PSΣ𝒫 ν lτ dτ a) 
Difference val => Difference (FIΣ𝒫 val lτ dτ a) 
Difference val => Difference (FSΣ𝒫 val lτ dτ a) 
Difference (PSΣ𝒫 val lτ dτ a) 
Difference (Power k k val lτ dτ) 

class (Bot a, Join a) => JoinLattice a Source

Instances

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

Instances

Lattice Bool 
Lattice Int 
Lattice b => Lattice (a -> b) 
Lattice (t (u a)) => Lattice ((:.:) k k t u a) 

class (Lattice a, Neg a) => NegLattice a Source

Instances

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

meets :: (Iterable a t, MeetLattice a) => t -> a Source

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

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

collectHistory :: (Join a, PartialOrder a) => (a -> a) -> a -> [a] Source

diffs :: forall a. (JoinLattice a, Difference a) => [a] -> [a] Source

collectDiffs :: (PartialOrder a, JoinLattice a, Difference a) => (a -> a) -> a -> [a] Source

class Commute t u where Source

Methods

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

class Unit t where Source

Methods

unit :: a -> t a Source

Instances

Unit [] 
Unit IO 
Unit Q 
Unit Maybe 
Unit CoreM 
Unit ListSetWithTop 
Unit ListSet 
Unit FreeMonoid 
Unit ID 
Unit DocM 
Unit ((:+:) a) 
Unit m => Unit (MaybeT m) 
Unit (FreeMonoidFunctor f) 
Unit (FreeFunctor f) 
Unit m => Unit (ListSetWithTopT m) 
Unit m => Unit (ListSetT m) 
Unit m => Unit (ListT m) 
Unit (Parser t) 
Unit m => Unit (StateT s m) 
(Unit m, Monoid o) => Unit (WriterT o m) 
Unit m => Unit (ErrorT e m) 
Unit m => Unit (ContT * r m) 
Unit m => Unit (ReaderT * r m) 
Unit (PS ν lτ dτ) 
Unit (FI val lτ dτ) 
Unit (FS val lτ dτ) 
Unit (PS val lτ dτ) 
(Unit m, Monoid o) => Unit (RWST r o s m) 
Unit m => Unit (AddStateT k s12 s1 m) 
Morphism3 * (k -> *) (k1 r) (ContFun k r) => Unit (OpaqueContT * k 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 CoreM 
Functor ListSetWithTop 
Functor ListSet 
Functor FreeMonoid 
Functor ID 
Functor DocM 
Functor ((->) a) 
Functor (Map k) 
Functor ((:+:) a) 
Functor m => Functor (MaybeT m) 
Functor f => Functor (FreeMonoidFunctor f) 
Functor f => Functor (FreeFunctor f) 
Functor m => Functor (ListSetWithTopT m) 
Functor m => Functor (ListSetT m) 
Functor m => Functor (ListT m) 
Functor (Parser t) 
Functor m => Functor (StateT s m) 
Functor m => Functor (WriterT o m) 
Functor m => Functor (ErrorT e m) 
Unit m => Functor (ContT * r m) 
Functor m => Functor (ReaderT * r m) 
Functor (PS ν lτ dτ) 
Functor (FI val lτ dτ) 
Functor (FS val lτ dτ) 
Functor (PS val lτ dτ) 
(Functor t, Functor u) => Functor ((:.:) * * t u) 
Functor m => Functor (RWST r o s m) 
Functor m => Functor (AddStateT k s12 s1 m) 
(Monad m, Isomorphism3 * (* -> *) (ContFun * r) (k r)) => Functor (OpaqueContT * * k r m) 
Functor m => Functor (IsoMonadStep k k * ς1 ς2 m) 

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

(^@) :: 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

class FunctorM t where Source

Methods

mapM :: Monad m => (a -> m b) -> t a -> m (t b) 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

(^*@) :: (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

class (Unit t, Functor t) => Applicative t where Source

Methods

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

pure :: Applicative t => a -> t a Source

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

apair :: Applicative t => t a -> t b -> t (a, b) 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 CoreM 
Product SetWithTop 
Product ListSetWithTop 
Product ListSet 
Product Set 
Product ID 
Product DocM 
Product ((:+:) a) 
(Functor m, Product m) => Product (MaybeT m) 
(Functor m, Product m) => Product (SetT m) 
(Monad m, Functorial * JoinLattice m, Functorial * Top m) => Product (ListSetWithTopT m) 
(Monad m, Functorial * JoinLattice m) => Product (ListSetT m) 
(Monad m, Functorial * Monoid m) => Product (ListT m) 
Product (Parser t) 
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 (ContT * r m) 
Product m => Product (ReaderT * r m) 
Product (PS ν lτ dτ) 
JoinLattice val => Product (FI val lτ dτ) 
Product (FS val lτ dτ) 
Product (PS val lτ dτ) 
(Monad m, Monoid o) => Product (RWST r o s m) 
Monad m => Product (AddStateT k s12 s1 m) 
(Monad m, Isomorphism3 * (* -> *) (ContFun * r) (k r)) => Product (OpaqueContT * * k r m) 
Product m => Product (IsoMonadStep k k * ς1 ς2 m) 

class Product m => Bind m where Source

Methods

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

Instances

Bind [] 
Bind IO 
Bind Q 
Bind Maybe 
Bind CoreM 
Bind SetWithTop 
Bind ListSetWithTop 
Bind ListSet 
Bind Set 
Bind ID 
Bind DocM 
Bind ((:+:) a) 
Monad m => Bind (MaybeT m) 
(Functorial * JoinLattice m, Monad m) => Bind (SetT m) 
(Monad m, Functorial * JoinLattice m, Functorial * Top m) => Bind (ListSetWithTopT m) 
(Monad m, Functorial * JoinLattice m) => Bind (ListSetT m) 
(Monad m, Functorial * Monoid m) => Bind (ListT m) 
Bind (Parser t) 
Monad m => Bind (StateT s m) 
(Monad m, Monoid o) => Bind (WriterT o m) 
(Unit m, Functor m, Bind m) => Bind (ErrorT e m) 
Unit m => Bind (ContT * r m) 
Bind m => Bind (ReaderT * r m) 
Bind (PS ν lτ dτ) 
JoinLattice val => Bind (FI val lτ dτ) 
Bind (FS val lτ dτ) 
Bind (PS val lτ dτ) 
(Monad m, Monoid o) => Bind (RWST r o s m) 
Monad m => Bind (AddStateT k s12 s1 m) 
(Monad m, Isomorphism3 * (* -> *) (ContFun * r) (k r)) => Bind (OpaqueContT * * k r m) 
Bind m => Bind (IsoMonadStep k k * ς1 ς2 m) 

class (Applicative m, Bind m) => Monad m Source

Instances

Monad [] 
Monad IO 
Monad Q 
Monad Maybe 
Monad CoreM 
Monad ListSetWithTop 
Monad ListSet 
Monad ID 
Monad DocM 
Monad ((:+:) a) 
Monad m => Monad (MaybeT m) 
(Monad m, Functorial * JoinLattice m, Functorial * Top m) => Monad (ListSetWithTopT m) 
(Monad m, Functorial * JoinLattice m) => Monad (ListSetT m) 
(Monad m, Functorial * Monoid m) => Monad (ListT m) 
Monad (Parser t) 
Monad m => Monad (StateT s m) 
(Monad m, Monoid o) => Monad (WriterT o m) 
Monad m => Monad (ErrorT e m) 
Unit m => Monad (ContT * r m) 
Monad m => Monad (ReaderT * r m) 
Monad (PS ν lτ dτ) 
JoinLattice val => Monad (FI val lτ dτ) 
Monad (FS val lτ dτ) 
Monad (PS val lτ dτ) 
(Monad m, Monoid o) => Monad (RWST r o s m) 
Monad m => Monad (AddStateT k s12 s1 m) 
(Monad m, Isomorphism3 * (* -> *) (ContFun * r) (k r)) => Monad (OpaqueContT * * 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

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

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

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

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

when :: Monad m => Bool -> m () -> m () 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

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 (ContT * r) 
Isomorphism3 * (* -> *) (k r) (ContFun * r) => MonadIsoFunctor2 (OpaqueContT * * k r) 

class MonadIO m where Source

Methods

io :: IO ~> m Source

Instances

class MonadQ m where Source

Methods

liftQ :: Q ~> m Source

Instances

class MonadBot m where Source

Methods

mbot :: m a Source

Instances

class MonadTop m where Source

Methods

mtop :: m a Source

class MonadBot m => MonadPlus m where Source

Methods

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

guard :: (Monad m, MonadBot m) => Bool -> m () Source

maybeZero :: (Monad m, MonadBot m) => Maybe a -> m a Source

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

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

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

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

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

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

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

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

newtype MaybeT m a Source

Constructors

MaybeT 

Fields

unMaybeT :: m (Maybe a)
 

class MonadMaybe m where Source

Methods

maybeI :: m ~> MaybeT m Source

maybeE :: MaybeT m ~> m Source

obsMaybe :: MonadMaybe m => m a -> m (Maybe a) Source

effMaybe :: MonadMaybe m => m (Maybe a) -> m a Source

abort :: (Monad m, MonadMaybe m) => m a Source

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

(<|>) :: (Monad m, MonadMaybe m) => m a -> m a -> m a Source

newtype ErrorT e m a Source

Constructors

ErrorT 

Fields

unErrorT :: m (e :+: a)
 

Instances

(Functor m, MonadState s m) => MonadState s (ErrorT e m) 
(Functor m, MonadReader r m) => MonadReader r (ErrorT e m) 
Functor m => MonadError e (ErrorT e m) 
FunctorFunctor2 (ErrorT e) 
FunctorJoin2 (ErrorT e) 
FunctorUnit2 (ErrorT e) 
Monad m => Monad (ErrorT e m) 
(Unit m, Functor m, Bind m) => Bind (ErrorT e m) 
(Functor m, Product m) => Product (ErrorT e m) 
(Functor m, Applicative m) => Applicative (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 MonadError e m | m -> e where Source

Methods

errorI :: m ~> ErrorT e m Source

errorE :: ErrorT e m ~> m Source

Instances

MonadError a ((:+:) a) 
(Functor m, MonadError e m) => MonadError e (StateT s m) 
Functor m => MonadError e (ErrorT e m) 
(Functor m, MonadError e m) => MonadError e (ReaderT * r m) 

obsError :: MonadError e m => m a -> m (e :+: a) Source

effError :: MonadError e m => m (e :+: a) -> m a Source

sumError :: (Monad m, MonadError e m) => (e :+: a) -> m a Source

throw :: (Monad m, MonadError e m) => e -> m a Source

catch :: (Monad m, MonadError e m) => m a -> (e -> m a) -> m a Source

newtype ReaderT r m a Source

Constructors

ReaderT 

Fields

unReaderT :: r -> m a
 

Instances

(Functor m, MonadState s m) => MonadState s (ReaderT * r m) 
(Monoid w, Functor m, MonadWriter w m) => MonadWriter w (ReaderT * r m) 
Functor m => MonadReader r (ReaderT * r m) 
(Functor m, MonadError e m) => MonadError e (ReaderT * r m) 
FunctorFunctor2 (ReaderT * r) 
FunctorJoin2 (ReaderT * r) 
FunctorUnit2 (ReaderT * r) 
(Functor m, MonadMaybe m) => MonadMaybe (ReaderT * r m) 
MonadAppend m => MonadAppend (ReaderT * r m) 
MonadBot m => MonadBot (ReaderT * r m) 
Monad m => Monad (ReaderT * r m) 
Bind m => Bind (ReaderT * r m) 
Product m => Product (ReaderT * r m) 
Applicative m => Applicative (ReaderT * r m) 
Functor m => Functor (ReaderT * r m) 
Unit m => Unit (ReaderT * r m) 

class MonadReader r m | m -> r where Source

Methods

readerI :: m ~> ReaderT r m Source

readerE :: ReaderT r m ~> m Source

Instances

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

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

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

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

ask :: (Monad m, MonadReader r m) => m r Source

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

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

askL :: (Monad m, MonadReader r m) => Lens r 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

unWriterT :: m (o, a)
 

Instances

(Functor m, Monoid w, MonadState s m) => MonadState s (WriterT w m) 
(Functor m, Monoid o) => MonadWriter o (WriterT o m) 
(Monoid w, Functor m, MonadReader r m) => MonadReader r (WriterT w m) 
FunctorFunctor2 (WriterT w) 
FunctorJoin2 (WriterT w) 
Monoid w => FunctorUnit2 (WriterT w) 
(Monoid w, Functor m, MonadMaybe m) => MonadMaybe (WriterT w m) 
(MonadBot m, Monoid o) => MonadBot (WriterT o m) 
(Monad m, Monoid o) => Monad (WriterT o m) 
(Monad m, Monoid o) => Bind (WriterT o m) 
(Functor m, Product m, Monoid o) => Product (WriterT o m) 
(Functor m, Applicative m, Monoid o) => Applicative (WriterT o m) 
Functor m => Functor (WriterT o m) 
(Unit m, Monoid o) => Unit (WriterT o m) 

class MonadWriter o m | m -> o where Source

Methods

writerI :: m ~> WriterT o m Source

writerE :: WriterT o m ~> m Source

Instances

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

obsWriter :: MonadWriter o m => m a -> m (o, a) Source

effWriter :: MonadWriter o m => m (o, a) -> m a Source

tell :: (Monad m, MonadWriter o m) => o -> m () Source

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

newtype StateT s m a Source

Constructors

StateT 

Fields

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

Instances

(Functorial * Bot m, Functorial * Join m, JoinLattice s) => Functorial * JoinLattice (StateT s m) 
(Functorial * Monoid m, Monoid s) => Functorial * Monoid (StateT s m) 
Functor m => MonadState s (StateT s m) 
(Monoid w, Functor m, MonadWriter w m) => MonadWriter w (StateT s m) 
(Functor m, MonadReader r m) => MonadReader r (StateT s m) 
(Functor m, MonadError e m) => MonadError e (StateT s m) 
FunctorFunctor2 (StateT s) 
FunctorJoin2 (StateT s) 
FunctorUnit2 (StateT s) 
(Functor m, MonadMaybe m) => MonadMaybe (StateT s m) 
MonadPlus m => MonadPlus (StateT s m) 
MonadAppend m => MonadAppend (StateT s m) 
MonadTop m => MonadTop (StateT s m) 
MonadBot m => MonadBot (StateT s m) 
Monad m => Monad (StateT s m) 
Monad m => Bind (StateT s m) 
Monad m => Product (StateT s m) 
Monad m => Applicative (StateT s m) 
Functor m => Functor (StateT s m) 
Unit m => Unit (StateT s m) 
(Functorial * Bot m, Functorial * Join m, JoinLattice s, JoinLattice a) => JoinLattice (StateT s m a) 
(Functorial * Join m, Join s, Join a) => Join (StateT s m a) 
(Functorial * Bot m, Bot s, Bot a) => Bot (StateT s m a) 
(Functorial * Monoid m, Monoid s, Monoid a) => Monoid (StateT s m a) 
(MonadStep ς m, Functor m) => MonadStep ((:.:) * * ς ((,) 𝓈)) (StateT 𝓈 m) 

class MonadState s m | m -> s where Source

Methods

stateI :: m ~> StateT s m Source

stateE :: StateT s m ~> m 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, 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) 
(Monad m, MonadState s m) => MonadState s (ContT * r 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 * (* -> *) (ContFun * r) (k r)) => MonadState s (OpaqueContT * * k r m) 
MonadState s m => MonadState s (IsoMonadStep k k * ς1 ς2 m) 
MonadState (ParserState t) (Parser t) 
MonadState (𝒮 ν lτ dτ) (PS ν lτ dτ) 
MonadState (𝒮 val lτ dτ) (PS val lτ dτ) 
MonadState (𝒮 val lτ dτ) (FS val lτ dτ) 
JoinLattice val => MonadState (𝒮 val lτ dτ) (FI val lτ dτ) 

obsState :: MonadState s m => m a -> s -> m (s, a) Source

effState :: MonadState s m => (s -> m (s, a)) -> m a Source

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

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

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

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

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

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

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

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

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

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

bumpL :: (Monad m, MonadState 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) => MonadState s (RWST r o s m) 
(Monad m, Monoid o) => MonadWriter o (RWST r o s m) 
(Monad m, Monoid o) => MonadReader r (RWST r o s m) 
Monoid o => MonadFunctor2 (RWST r o s) 
Monoid o => MonadJoin2 (RWST r o s) 
Monoid o => MonadUnit2 (RWST r o s) 
(Functor m, MonadMaybe m, Monoid o) => MonadMaybe (RWST r o s m) 
(MonadBot m, Monoid o) => MonadBot (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) => Product (RWST r o s m) 
(Monad m, Monoid o) => Applicative (RWST r o s m) 
Functor m => Functor (RWST r o s m) 
(Unit m, Monoid o) => Unit (RWST r o s m) 

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

Methods

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

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

Instances

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

newtype ContT r m a Source

Constructors

ContT 

Fields

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

Instances

Monad m => MonadCont r (ContT * r m) 
(Monad m, MonadState s m) => MonadState s (ContT * r m) 
MonadIsoFunctor2 (ContT * r) 
Unit m => Monad (ContT * r m) 
Unit m => Bind (ContT * r m) 
Unit m => Product (ContT * r m) 
Unit m => Applicative (ContT * r m) 
Unit m => Functor (ContT * r m) 
Unit m => Unit (ContT * r m) 

class MonadCont r m | m -> r where Source

Methods

contI :: m ~> ContT r m Source

contE :: ContT r m ~> m Source

Instances

Monad m => MonadCont r (ContT * r m) 
(Monad m, Isomorphism3 * (* -> *) (ContFun * r) (k r)) => MonadCont r (OpaqueContT * * k r m) 

obsCont :: MonadCont r m => m a -> (a -> m r) -> m r Source

effCont :: MonadCont r m => ((a -> m r) -> m r) -> m a Source

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

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

reset :: (Monad m, MonadCont r m) => m r -> m r Source

modifyC :: (Monad m, MonadCont r m) => (r -> m r) -> m a -> m a Source

newtype OpaqueContT k r m a Source

Constructors

OpaqueContT 

Fields

unOpaqueContT :: k r m a -> m r
 

Instances

(Monad m, Isomorphism3 * (* -> *) (ContFun * r) (k r), Balloon k r) => MonadOpaqueCont * k r (OpaqueContT * * k r m) 
(Monad m, Isomorphism3 * (* -> *) (ContFun * r) (k r)) => MonadCont r (OpaqueContT * * k r m) 
(Monad m, MonadState s m, Isomorphism3 * (* -> *) (ContFun * r) (k r)) => MonadState s (OpaqueContT * * k r m) 
Isomorphism3 * (* -> *) (k r) (ContFun * r) => MonadIsoFunctor2 (OpaqueContT * * k r) 
(Monad m, Isomorphism3 * (* -> *) (ContFun * r) (k r)) => Monad (OpaqueContT * * k r m) 
(Monad m, Isomorphism3 * (* -> *) (ContFun * r) (k r)) => Bind (OpaqueContT * * k r m) 
(Monad m, Isomorphism3 * (* -> *) (ContFun * r) (k r)) => Product (OpaqueContT * * k r m) 
(Monad m, Isomorphism3 * (* -> *) (ContFun * r) (k r)) => Applicative (OpaqueContT * * k r m) 
(Monad m, Isomorphism3 * (* -> *) (ContFun * r) (k r)) => Functor (OpaqueContT * * k r m) 
Morphism3 * (k -> *) (k1 r) (ContFun k r) => Unit (OpaqueContT * k k r m) 

class MonadOpaqueCont k r m | m -> k, m -> r where Source

Instances

(Monad m, Isomorphism3 * (* -> *) (ContFun * r) (k r), Balloon k r) => MonadOpaqueCont * k r (OpaqueContT * * k r m) 

obsOpaqueCont :: MonadOpaqueCont k r m => m a -> k r m a -> m r Source

effOpaqueCont :: MonadOpaqueCont k r m => (k r m a -> m r) -> m a Source

opaqueWithC :: MonadOpaqueCont k r m => k r m a -> m a -> m r Source

opaqueCallCC :: MonadOpaqueCont k r m => (k r m a -> m r) -> m a Source

class Container e t | t -> e where Source

Methods

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

Instances

Container Char String 
Container a (Set a) 
Eq a => Container a [a] 
Eq a => Container a (ListSet a) 
Eq ψ => Container ψ ( ψ) 
Eq ψ => Container ψ ( ψ) 
Eq ψ => Container ψ ( k ψ) 
Eq ψ => Container ψ ( k ψ) 
Eq v => Container (k, v) (Map k v) 
Container (val lτ dτ) (Power 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 | t -> a where Source

Minimal complete definition

Nothing

Methods

foldlk :: (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 ψ ( ψ) 
Iterable ψ ( k ψ) 
Iterable ψ ( k ψ) 
Iterable (k, v) (Map k v) 
Iterable (val lτ dτ) (Power k k val lτ dτ) 

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

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

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

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

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

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

toSet :: (Ord a, Iterable a t) => t -> Set a Source

toMap :: (Ord k, Iterable (k, v) t) => t -> Map k v Source

toMapJoin :: (Ord k, Iterable (k, v) t, Join v) => t -> Map k v Source

class Buildable a t | t -> a where Source

Methods

nil :: t Source

(&) :: a -> t -> t Source

Instances

Ord a => Buildable a (SumOfProd a) 
Ord a => Buildable a (SetWithTop a) 
Buildable a (ListSetWithTop a) 
Ord a => Buildable a (Set a) 
Buildable a [a] 
Buildable a (ListSet a) 
Buildable ψ ( ψ) 
Buildable ψ ( ψ) 
Buildable ψ ( k ψ) 
Buildable ψ ( k ψ) 
Ord k => Buildable (k, v) (Map k v) 
Ord (ν lτ dτ) => Buildable (ν lτ dτ) (SumOfProdVal k k ν lτ dτ) 
Ord (val lτ dτ) => Buildable (val lτ dτ) (Power k k val lτ dτ) 

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

single :: Buildable a t => a -> t Source

filter :: (Iterable a t, Buildable a t) => (a -> Bool) -> t -> t Source

reverse :: (Iterable a t, Buildable a t) => t -> t Source

uniques :: (Eq a, Iterable a t, Buildable a t) => t -> t Source

replicate :: (Eq n, Peano n, Iterable a t, Buildable a t) => n -> a -> t Source

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

fromSet :: Buildable a t => Set a -> t Source

fromMap :: Buildable (k, v) t => Map k v -> t 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

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

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

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

type Chars = [Char] Source

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

read :: Read a => String -> a Source

data Cursor a b Source

Constructors

Cursor 

Fields

focus :: a
 
construct :: a -> b
 

data Lens a b Source

Constructors

Lens 

Fields

unLens :: a -> Cursor b a
 

Instances

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

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

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

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

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

(~:) :: Lens a b -> (b -> b) -> a -> a infixr 0 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

inject :: b -> a
 
view :: a -> Maybe b
 

Instances

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

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

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

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

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

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

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

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

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

Constructors

Compose 

Fields

unCompose :: t (u a)
 

Instances

(Functorial * JoinLattice t, Functorial * JoinLattice u) => Functorial * JoinLattice ((:.:) * * t u) 
Isomorphism2 * (PSΣ ν lτ dτ) (PSΣ' ν lτ dτ) 
Isomorphism2 * (FIΣ val lτ dτ) (FIΣ' val lτ dτ) 
Isomorphism2 * (FSΣ val lτ dτ) (FSΣ' val lτ dτ) 
Isomorphism2 * (PSΣ val lτ dτ) (PSΣ' val lτ dτ) 
Morphism2 * (PSΣ ν lτ dτ) (PSΣ' ν lτ dτ) 
Morphism2 * (PSΣ' ν lτ dτ) (PSΣ ν 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τ) 
Morphism2 * (PSΣ val lτ dτ) (PSΣ' val lτ dτ) 
Morphism2 * (PSΣ' val lτ dτ) (PSΣ val lτ dτ) 
(Functor t, Functor u) => Functor ((:.:) * * 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, Functorial * Top m) => MonadStep ((:.:) * * ς ListSetWithTop) (ListSetWithTopT m) 
(MonadStep ς m, Functorial * JoinLattice m) => 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) 
Lattice (t (u a)) => Lattice ((:.:) k k t u a) 
MeetLattice (t (u a)) => MeetLattice ((:.:) k k t u a) 
JoinLattice (t (u a)) => JoinLattice ((:.:) k k t u a) 
Meet (t (u a)) => Meet ((:.:) k k t u a) 
Top (t (u a)) => Top ((:.:) k k t u a) 
Join (t (u a)) => Join ((:.:) k k t u a) 
Bot (t (u a)) => Bot ((:.:) 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

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

MonadError a ((:+:) a) 
Monad ((:+:) a) 
Bind ((:+:) a) 
Product ((:+:) a) 
Applicative ((:+:) 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

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

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

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

maybeNot :: a -> Maybe a -> a Source

nilL :: Prism [a] () Source

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

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

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

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

head :: [a] -> Maybe a Source

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

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

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

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

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

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

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

bigProduct :: [[a]] -> [[a]] Source

data Set a where Source

Constructors

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

Instances

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

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

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

setPrimElim2' :: b -> (Ord a => Set a -> b) -> (Ord a => Set a -> Set a -> b) -> Set a -> Set a -> b Source

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

insert :: Ord a => a -> Set a -> Set a Source

union :: Set a -> Set a -> Set a Source

intersection :: Set a -> Set a -> Set a Source

remove :: Set a -> Maybe (a, Set a) Source

setDiff :: Set a -> Set a -> Set a Source

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

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

maybeSet :: Ord a => Maybe a -> Set a Source

data Map k v where Source

Constructors

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

Instances

Indexed k v (Map k v) 
Isomorphism2 * (FIΣ val lτ dτ) (FIΣ' val lτ dτ) 
Morphism2 * (FIΣ val lτ dτ) (FIΣ' val lτ dτ) 
Morphism2 * (FIΣ' val lτ dτ) (FIΣ val lτ dτ) 
Functor (Map k) 
(Eq k, Eq v) => Eq (Map k v) 
(Ord k, Ord v) => Ord (Map k v) 
JoinLattice v => JoinLattice (Map k v) 
Difference v => Difference (Map k v) 
Join v => Join (Map k v) 
Bot (Map k v) 
Monoid v => Monoid (Map k v) 
(Ord k, PartialOrder v) => PartialOrder (Map k v) 
(Pretty k, Pretty v) => Pretty (Map k v) 
Ord k => Buildable (k, v) (Map k v) 
Iterable (k, v) (Map k v) 
Eq v => Container (k, v) (Map k v) 
Morphism (𝒮Cxt lτ dτ, Store val lτ dτ) (𝒮 val lτ dτ) 
Isomorphism (𝒮 val lτ dτ) (𝒮Cxt lτ dτ, Store val lτ dτ) 
Morphism (𝒮 val lτ dτ) (𝒮Cxt lτ dτ, Store val lτ dτ) 

type Old v = v Source

type New v = v Source

mapPrimElim :: b -> (Ord k => Map k v -> b) -> Map k v -> b Source

mapPrimElimOn :: Map k v -> b -> (Ord k => Map k v -> b) -> b Source

mapPrimElim2 :: b -> (Ord k => Map k v -> b) -> (Ord k => Map k v -> b) -> (Ord k => Map k v -> Map k v -> b) -> Map k v -> Map k v -> b Source

mapPrimElim2' :: b -> (Ord k => Map k v -> b) -> (Ord k => Map k v -> Map k v -> b) -> Map k v -> Map k v -> b Source

toPrimMap :: Map k v -> Map k v Source

learnMap :: Map k v -> b -> (Ord k => b) -> b Source

mapKeys :: Map k v -> Set k Source

mapInsert :: Ord k => k -> v -> Map k v -> Map k v Source

mapSingleton :: Ord k => k -> v -> Map k v Source

mapInsertWith :: Ord k => (Old v -> New v -> v) -> k -> v -> Map k v -> Map k v Source

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

mapUnionWith :: (Old v -> New v -> v) -> Map k v -> Map k v -> Map k v Source

mapIntersectionWith :: (Old v -> New v -> v) -> Map k v -> Map k v -> Map k v Source

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

onlyKeys :: Ord k => Set k -> Map k v -> Map k v Source

mapFilter :: (v -> Bool) -> Map k v -> Map k v Source

mapNoBot :: (Bot v, Eq v) => Map k v -> Map k v Source

newtype ListSet a Source

Constructors

ListSet 

Fields

unListSet :: [a]
 

Instances

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

print :: MonadIO m => String -> m () Source

failIO :: MonadIO m => String -> m a Source

data Stamped a f Source

Constructors

Stamped 

Fields

stampedID :: a
 
stamped :: f
 

Instances

Balloon CPSKon Call 
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

unFix :: f (Fix f)
 

Instances

Functorial * Eq f => Eq (Fix f) 
(Functorial * Eq f, Functorial * Ord f) => Ord (Fix f) 
Functorial * Pretty f => Pretty (Fix f) 

data StampedFix a f Source

Constructors

StampedFix 

Fields

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

data Annotated ann a Source

Constructors

Annotated 

Fields

annotation :: ann
 
annValue :: a
 

listSetWithTopElim :: b -> (ListSet a -> b) -> ListSetWithTop a -> b Source

setWithTopElim :: b -> (Set a -> b) -> SetWithTop a -> b Source

data ConstructiveClassical a Source

Constructors

Constructive (Set a) 
Classical (a -> Bool) 

Instances

(Ord lτ, Ord dτ) => Val lτ dτ ConstructiveClassical OCVal 

newtype SumOfProd a Source

Constructors

SumOfProd 

Fields

unSumOfProd :: Set (Set a)
 

Instances

sumOfProdMap :: Ord b => (a -> b) -> SumOfProd a -> SumOfProd b Source

module GHC.Exts

module Data.Char