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

Safe HaskellNone
LanguageHaskell2010

Lang.LamIf.Monads

Documentation

type PSΣ' val lτ dτ = (ID :.: ListSet) :.: (,) (𝒮 val lτ dτ) Source

newtype PSΣ val lτ dτ a Source

Constructors

PSΣ 

Fields

unPSΣ :: ListSet (a, 𝒮 val lτ dτ)
 

Instances

Isomorphism2 * (PSΣ val lτ dτ) (PSΣ' val lτ dτ) 
Morphism2 * (PSΣ val lτ dτ) (PSΣ' val lτ dτ) 
Morphism2 * (PSΣ' val lτ dτ) (PSΣ val lτ dτ) 
(TimeC lτ, TimeC dτ) => Inject (PSΣ val lτ dτ) 
MonadStep (PSΣ val lτ dτ) (PS val lτ dτ) 
(TimeC lτ, TimeC dτ, ValC lτ dτ val) => Execution (PSΣ val lτ dτ) (PSΣ𝒫 val lτ dτ) (PS val lτ dτ) 
JoinLattice (PSΣ val lτ dτ a) 
Join (PSΣ val lτ dτ a) 
Bot (PSΣ val lτ dτ a) 
(Ord val, Ord lτ, Ord dτ, Ord a) => PartialOrder (PSΣ val lτ dτ a) 
(Ord val, Ord lτ, Ord dτ, Ord a, Pretty val, Pretty lτ, Pretty dτ, Pretty a) => Pretty (PSΣ val lτ dτ a) 
(Ord val, Ord lτ, Ord dτ, Ord a) => Isomorphism (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) 
(Ord val, Ord lτ, Ord dτ, Ord a) => Morphism (PSΣ val lτ dτ a) (PSΣ𝒫 val lτ dτ a) 

newtype PSΣ𝒫 val lτ dτ a Source

Constructors

PSΣ𝒫 

Fields

unPSΣ𝒫 :: Set (a, 𝒮 val lτ dτ)
 

Instances

(TimeC lτ, TimeC dτ, ValC lτ dτ val) => Execution (PSΣ val lτ dτ) (PSΣ𝒫 val lτ dτ) (PS val lτ dτ) 
JoinLattice (PSΣ𝒫 val lτ dτ a) 
Difference (PSΣ𝒫 val lτ dτ a) 
Join (PSΣ𝒫 val lτ dτ a) 
Bot (PSΣ𝒫 val lτ dτ a) 
PartialOrder (PSΣ𝒫 val lτ dτ a) 
(Pretty val, Pretty lτ, Pretty dτ, Pretty a) => Pretty (PSΣ𝒫 val lτ dτ a) 
(Ord val, Ord lτ, Ord dτ, Ord a) => Isomorphism (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) 
(Ord val, Ord lτ, Ord dτ, Ord a) => Morphism (PSΣ val lτ dτ a) (PSΣ𝒫 val lτ dτ a) 

newtype PS val lτ dτ a Source

Constructors

FSPS 

Fields

unPS :: IsoMonadStep (PSΣ val lτ dτ) (PSΣ' val lτ dτ) (StateT (𝒮 val lτ dτ) (ListSetT ID)) a
 

Instances

(TimeC lτ, TimeC dτ, ValC lτ dτ val) => Analysis val lτ dτ (PS val lτ dτ) 
MonadPlus (PS val lτ dτ) 
MonadBot (PS val lτ dτ) 
Monad (PS val lτ dτ) 
Bind (PS val lτ dτ) 
Product (PS val lτ dτ) 
Applicative (PS val lτ dτ) 
Functor (PS val lτ dτ) 
Unit (PS val lτ dτ) 
MonadState (𝒮 val lτ dτ) (PS val lτ dτ) 
MonadStep (PSΣ val lτ dτ) (PS val lτ dτ) 
(TimeC lτ, TimeC dτ, ValC lτ dτ val) => Execution (PSΣ val lτ dτ) (PSΣ𝒫 val lτ dτ) (PS val lτ dτ) 

type FSΣ' val lτ dτ = (ID :.: ListSet) :.: (,) (𝒮 val lτ dτ) Source

newtype FSΣ val lτ dτ a Source

Constructors

FSΣ 

Fields

unFSΣ :: ListSet (a, 𝒮 val lτ dτ)
 

Instances

Isomorphism2 * (FSΣ val lτ dτ) (FSΣ' val lτ dτ) 
Morphism2 * (FSΣ val lτ dτ) (FSΣ' val lτ dτ) 
Morphism2 * (FSΣ' val lτ dτ) (FSΣ val lτ dτ) 
(TimeC lτ, TimeC dτ) => Inject (FSΣ val lτ dτ) 
MonadStep (FSΣ val lτ dτ) (FS val lτ dτ) 
(TimeC lτ, TimeC dτ, ValC lτ dτ val) => Execution (FSΣ val lτ dτ) (FSΣ𝒫 val lτ dτ) (FS val lτ dτ) 
JoinLattice (FSΣ val lτ dτ a) 
Join (FSΣ val lτ dτ a) 
Bot (FSΣ val lτ dτ a) 
(Ord val, Ord lτ, Ord dτ, Ord a) => PartialOrder (FSΣ val lτ dτ a) 
(Ord val, Ord lτ, Ord dτ, Ord a, Pretty val, Pretty lτ, Pretty dτ, Pretty a) => Pretty (FSΣ 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) => 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) 

newtype FSΣ𝒫 val lτ dτ a Source

Constructors

FSΣ𝒫 

Fields

unFSΣ𝒫 :: Map a (Set (𝒮Cxt lτ dτ), Store val lτ dτ)
 

Instances

(TimeC lτ, TimeC dτ, ValC lτ dτ val) => Execution (FSΣ val lτ dτ) (FSΣ𝒫 val lτ dτ) (FS val lτ dτ) 
JoinLattice val => JoinLattice (FSΣ𝒫 val lτ dτ a) 
Difference val => Difference (FSΣ𝒫 val lτ dτ a) 
Join val => Join (FSΣ𝒫 val lτ dτ a) 
Bot (FSΣ𝒫 val lτ dτ a) 
(Ord lτ, Ord dτ, Ord a, PartialOrder val) => PartialOrder (FSΣ𝒫 val lτ dτ a) 
(Pretty val, Pretty lτ, Pretty dτ, Pretty a) => Pretty (FSΣ𝒫 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) => 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) 

newtype FS val lτ dτ a Source

Constructors

FS 

Fields

unFS :: IsoMonadStep (FSΣ val lτ dτ) (FSΣ' val lτ dτ) (StateT (𝒮 val lτ dτ) (ListSetT ID)) a
 

Instances

(TimeC lτ, TimeC dτ, ValC lτ dτ val) => Analysis val lτ dτ (FS val lτ dτ) 
MonadPlus (FS val lτ dτ) 
MonadBot (FS val lτ dτ) 
Monad (FS val lτ dτ) 
Bind (FS val lτ dτ) 
Product (FS val lτ dτ) 
Applicative (FS val lτ dτ) 
Functor (FS val lτ dτ) 
Unit (FS val lτ dτ) 
MonadState (𝒮 val lτ dτ) (FS val lτ dτ) 
MonadStep (FSΣ val lτ dτ) (FS val lτ dτ) 
(TimeC lτ, TimeC dτ, ValC lτ dτ val) => Execution (FSΣ val lτ dτ) (FSΣ𝒫 val lτ dτ) (FS val lτ dτ) 

type FIΣ' val lτ dτ = ((ID :.: (,) (Store val lτ dτ)) :.: ListSet) :.: (,) (𝒮Cxt lτ dτ) Source

newtype FIΣ val lτ dτ a Source

Constructors

FIΣ 

Fields

unFIΣ :: (ListSet (a, 𝒮Cxt lτ dτ), Store val lτ dτ)
 

Instances

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τ) 
(TimeC lτ, TimeC dτ) => Inject (FIΣ val lτ dτ) 
JoinLattice val => MonadStep (FIΣ val lτ dτ) (FI val lτ dτ) 
(TimeC lτ, TimeC dτ, ValC lτ dτ val) => Execution (FIΣ val lτ dτ) (FIΣ𝒫 val lτ dτ) (FI val lτ dτ) 
JoinLattice val => JoinLattice (FIΣ val lτ dτ a) 
Join val => Join (FIΣ val lτ dτ a) 
Bot (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, Pretty val, Pretty lτ, Pretty dτ, Pretty a) => Pretty (FIΣ val lτ dτ a) 
(Ord val, Ord lτ, Ord dτ, Ord a) => Isomorphism (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 (FIΣ val lτ dτ a) (FIΣ𝒫 val lτ dτ a) 

newtype FIΣ𝒫 val lτ dτ a Source

Constructors

FIΣ𝒫 

Fields

unFIΣ𝒫 :: (Set (a, 𝒮Cxt lτ dτ), Store val lτ dτ)
 

Instances

(TimeC lτ, TimeC dτ, ValC lτ dτ val) => Execution (FIΣ val lτ dτ) (FIΣ𝒫 val lτ dτ) (FI val lτ dτ) 
JoinLattice val => JoinLattice (FIΣ𝒫 val lτ dτ a) 
Difference val => Difference (FIΣ𝒫 val lτ dτ a) 
Join val => Join (FIΣ𝒫 val lτ dτ a) 
Bot (FIΣ𝒫 val lτ dτ a) 
(Ord lτ, Ord dτ, PartialOrder val) => PartialOrder (FIΣ𝒫 val lτ dτ a) 
(Pretty val, Pretty lτ, Pretty dτ, Pretty a) => Pretty (FIΣ𝒫 val lτ dτ a) 
(Ord val, Ord lτ, Ord dτ, Ord a) => Isomorphism (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 (FIΣ val lτ dτ a) (FIΣ𝒫 val lτ dτ a) 

newtype FI val lτ dτ a Source

Constructors

FIPI 

Fields

unFI :: IsoMonadStep (FIΣ val lτ dτ) (FIΣ' val lτ dτ) (AddStateT (𝒮 val lτ dτ) (𝒮Cxt lτ dτ) (ListSetT (StateT (Store val lτ dτ) ID))) a
 

Instances

(TimeC lτ, TimeC dτ, ValC lτ dτ val) => Analysis val lτ dτ (FI val lτ dτ) 
JoinLattice val => MonadPlus (FI val lτ dτ) 
JoinLattice val => MonadBot (FI val lτ dτ) 
JoinLattice val => Monad (FI val lτ dτ) 
JoinLattice val => Bind (FI val lτ dτ) 
JoinLattice val => Product (FI val lτ dτ) 
JoinLattice val => Applicative (FI val lτ dτ) 
Functor (FI val lτ dτ) 
Unit (FI val lτ dτ) 
JoinLattice val => MonadState (𝒮 val lτ dτ) (FI val lτ dτ) 
JoinLattice val => MonadStep (FIΣ val lτ dτ) (FI val lτ dτ) 
(TimeC lτ, TimeC dτ, ValC lτ dτ val) => Execution (FIΣ val lτ dτ) (FIΣ𝒫 val lτ dτ) (FI val lτ dτ)