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

Safe HaskellNone
LanguageHaskell2010

FP.Prelude.Morphism

Documentation

type (↝) m n = forall a. m a -> n a infixr 3 Source

type (⇝) t u = forall m. t m u m infixr 3 Source

data a b Source

Constructors

Iso 

Fields

isoTo :: a -> b
 
isoFrom :: b -> a
 

class Isomorphic a b where Source

Methods

isomorphic :: a b Source

Instances

data t ↝⇄ u Source

Constructors

Iso2 

Fields

isoTo2 :: t u
 
isoFrom2 :: u t
 

Instances

Symmetric (k -> *) ((↝⇄) k) Source 
Category (k -> *) ((↝⇄) k) Source 

class Isomorphic2 t u where Source

Methods

isomorphic2 :: t ↝⇄ u Source

iso2FromIso :: (forall a. t a u a) -> t ↝⇄ u Source

data v ⇝⇄ w Source

Constructors

Iso3 

Fields

isoTo3 :: v w
 
isoFrom3 :: w v
 

class Isomorphic3 v w where Source

Methods

isomorphic3 :: v ⇝⇄ w Source

class Category t where Source

Methods

refl :: t a a Source

(⌾) :: t b c -> t a b -> t a c infixr 7 Source

class Symmetric t where Source

Methods

sym :: t a b -> t b a Source

Instances