maam-0.3.0.0: Monadic Abstracting Abstract Machines (MAAM) built on Galois Transformers

Safe HaskellNone
LanguageHaskell2010

FP.Prelude.Lattice

Documentation

data PartialOrdering Source

Constructors

PLT 
PEQ 
PGT 
PUN 

class POrd a where Source

Methods

(⊑⊒) :: a -> a -> PartialOrdering infix 6 Source

(⊑) :: POrd a => a -> a -> 𝔹 infix 6 Source

(⊒) :: POrd a => a -> a -> 𝔹 infix 6 Source

(><) :: POrd a => a -> a -> 𝔹 infix 6 Source

poCompareFromLte :: (a -> a -> 𝔹) -> a -> a -> PartialOrdering Source

class Top a where Source

Methods

top :: a Source

Instances

Top 𝔹 Source 
Top 𝔻 Source 
Top 𝕀 Source 
Top ℕᵀ Source 
Functorial * Top ID Source 
Top (AddTop a) Source 
Top a => Top (AddBot a) Source 
Top a => Top (ID a) Source 
Top b => Top (a -> b) Source 
(Top a, Top b) => Top (a, b) Source 
Top (t (u a)) => Top ((⊡) k k t u a) Source 

class Meet a where Source

Methods

(⊓) :: a -> a -> a infixr 5 Source

Instances

class Dual a where Source

Methods

dual :: a -> a Source

Instances

Dual 𝔹 Source 
Dual b => Dual (a -> b) Source 
(Dual a, Dual b) => Dual (a, b) Source 

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

Instances

JoinLattice 𝔹 Source 
JoinLattice 𝔻 Source 
JoinLattice 𝕀 Source 
JoinLattice ℕᵀ Source 
JoinLattice Source 
JoinLattice SourceErrorTrace Source 
Functorial * JoinLattice ID Source 
Functorial * JoinLattice ς => Polymorphic * * JoinLattice (NondetJoinΠ ς) Source 
Polymorphic * * JoinLattice m => Polymorphic * * JoinLattice (PolyStateT s m) Source 
Polymorphic * * JoinLattice ς => Polymorphic * * JoinLattice (PolyStateΠ s ς) Source 
Functorial * JoinLattice ς => Polymorphic * * JoinLattice (FlowJoinΠ s ς) Source 
JoinLattice a => Functorial * JoinLattice ((,) a) Source 
(Functorial * JoinLattice ς, JoinLattice s) => Functorial * JoinLattice (StateΠ s ς) Source 
JoinLattice (𝒫ᵇ a) Source 
JoinLattice (𝒫 a) Source 
JoinLattice a => JoinLattice (AddTop a) Source 
Join a => JoinLattice (AddBot a) Source 
JoinLattice a => JoinLattice (ID a) Source 
Join val => JoinLattice (LamIfStores val) Source 
JoinLattice b => JoinLattice (a -> b) Source 
(JoinLattice a, JoinLattice b) => JoinLattice (a, b) Source 
JoinLattice ((⇰♭⊔) k v) Source 
Join v => JoinLattice ((⇰) k v) Source 
Functorial * JoinLattice ς => JoinLattice (NondetJoinΠ ς a) Source 
JoinLattice (PathSensitiveΣ val a) Source 
Join val => JoinLattice (FlowInsensitiveΣ val a) Source 
Join val => JoinLattice (FlowSensitiveΣ val a) Source 
(Functorial * JoinLattice ς, JoinLattice s, JoinLattice a) => JoinLattice (StateΠ s ς a) Source 
Polymorphic * * JoinLattice m => JoinLattice (PolyStateT s m a) Source 
Polymorphic * * JoinLattice ς => JoinLattice (PolyStateΠ s ς a) Source 
Functorial * JoinLattice ς => JoinLattice (FlowJoinΠ s ς a) Source 
JoinLattice (t (u a)) => JoinLattice ((⊡) k k t u a) Source 

dictJoin :: (ToFold (k, v) t, Ord k, JoinLattice v) => t -> k v Source

mapKeyJoin :: (Ord k₂, JoinLattice v) => (k₁ -> k₂) -> (k₁ v) -> k₂ v Source

lazyDictJoin :: ToFold (k, v) t => t -> k ⇰♭⊔ v Source

mapKeyLazyDictJoin :: (k -> k') -> (k ⇰♭⊔ v) -> k' ⇰♭⊔ v Source

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

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

data AddBot a Source

Constructors

Bot 
AddBot a 

elimAddBot :: b -> (a -> b) -> AddBot a -> b Source

data AddTop a Source

Constructors

AddTop a 
Top