uvmhs-0.0.1.0
Safe HaskellNone
LanguageHaskell2010

UVMHS.Core.Classes.Morphism

Documentation

type (→⁻) (m :: Type -> Type) (n :: Type -> Type) = forall a. m a -> n a infixr 1 Source #

type (→⁼) (t :: (Type -> Type) -> Type -> Type) (u :: (Type -> Type) -> Type -> Type) = forall (m :: Type -> Type). t m →⁻ u m infixr 1 Source #

class a b | a -> b where infixr 1 Source #

Methods

isoto :: a -> b Source #

isofr :: b -> a Source #

Instances

Instances details
𝕊 (𝐼 ) Source # 
Instance details

Defined in UVMHS.Core.Data.Iter

(𝑂 a) (() a) Source # 
Instance details

Defined in UVMHS.Core.Data.Option

Methods

isoto :: 𝑂 a -> () a Source #

isofr :: (() a) -> 𝑂 a Source #

data Iso a b Source #

Constructors

Iso 

Fields

  • ito :: a -> b
     
  • ifr :: b -> a
     

Instances

Instances details
Category Iso Source # 
Instance details

Defined in UVMHS.Core.Classes.Morphism

Reflexive Iso Source # 
Instance details

Defined in UVMHS.Core.Classes.Morphism

Methods

refl :: Iso a a Source #

Symmetric Iso Source # 
Instance details

Defined in UVMHS.Core.Classes.Morphism

Methods

sym :: Iso a b -> Iso b a Source #

Transitive Iso Source # 
Instance details

Defined in UVMHS.Core.Classes.Morphism

Methods

(⊚) :: Iso b c -> Iso a b -> Iso a c Source #

toiso :: a b => Iso a b Source #

friso :: a b => Iso b a Source #

class (t :: Type -> Type) ⇄⁻ (u :: Type -> Type) | t -> u where infixr 1 Source #

Methods

isoto2 :: t →⁻ u Source #

isofr2 :: u →⁻ t Source #

data Iso2 (t :: Type -> Type) (u :: Type -> Type) Source #

Constructors

Iso2 

Fields

Instances

Instances details
Category Iso2 Source # 
Instance details

Defined in UVMHS.Core.Classes.Morphism

Reflexive Iso2 Source # 
Instance details

Defined in UVMHS.Core.Classes.Morphism

Methods

refl :: forall (a :: Type -> Type). Iso2 a a Source #

Symmetric Iso2 Source # 
Instance details

Defined in UVMHS.Core.Classes.Morphism

Methods

sym :: forall (a :: Type -> Type) (b :: Type -> Type). Iso2 a b -> Iso2 b a Source #

Transitive Iso2 Source # 
Instance details

Defined in UVMHS.Core.Classes.Morphism

Methods

(⊚) :: forall (b :: Type -> Type) (c :: Type -> Type) (a :: Type -> Type). Iso2 b c -> Iso2 a b -> Iso2 a c Source #

toiso2 :: forall (t :: Type -> Type) (u :: Type -> Type). t ⇄⁻ u => Iso2 t u Source #

friso2 :: forall (t :: Type -> Type) (u :: Type -> Type). t ⇄⁻ u => Iso2 u t Source #

class (v :: (Type -> Type) -> Type -> Type) ⇄⁼ (w :: (Type -> Type) -> Type -> Type) | v -> w where infixr 1 Source #

Methods

isoto3 :: v →⁼ w Source #

isofr3 :: w →⁼ v Source #

Instances

Instances details
(RWST r o s) ⇄⁼ (((ReaderT r :: (Type -> Type) -> Type -> Type) WriterT o) StateT s) Source # 
Instance details

Defined in UVMHS.Core.Monads

Methods

isoto3 :: RWST r o s →⁼ (((ReaderT r :: (Type -> Type) -> Type -> Type) WriterT o) StateT s) Source #

isofr3 :: (((ReaderT r :: (Type -> Type) -> Type -> Type) WriterT o) StateT s) →⁼ RWST r o s Source #

data Iso3 (v :: (Type -> Type) -> Type -> Type) (w :: (Type -> Type) -> Type -> Type) Source #

Constructors

Iso3 

Fields

Instances

Instances details
Category Iso3 Source # 
Instance details

Defined in UVMHS.Core.Classes.Morphism

Reflexive Iso3 Source # 
Instance details

Defined in UVMHS.Core.Classes.Morphism

Methods

refl :: forall (a :: (Type -> Type) -> Type -> Type). Iso3 a a Source #

Symmetric Iso3 Source # 
Instance details

Defined in UVMHS.Core.Classes.Morphism

Methods

sym :: forall (a :: (Type -> Type) -> Type -> Type) (b :: (Type -> Type) -> Type -> Type). Iso3 a b -> Iso3 b a Source #

Transitive Iso3 Source # 
Instance details

Defined in UVMHS.Core.Classes.Morphism

Methods

(⊚) :: forall (b :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Type -> Type) (a :: (Type -> Type) -> Type -> Type). Iso3 b c -> Iso3 a b -> Iso3 a c Source #

toiso3 :: forall (v :: (Type -> Type) -> Type -> Type) (w :: (Type -> Type) -> Type -> Type). v ⇄⁼ w => Iso3 v w Source #

friso3 :: forall (v :: (Type -> Type) -> Type -> Type) (w :: (Type -> Type) -> Type -> Type). v ⇄⁼ w => Iso3 w v Source #

class Reflexive (t :: k -> k -> Type) where Source #

Methods

refl :: forall (a :: k). t a a Source #

Instances

Instances details
Reflexive (≤) Source # 
Instance details

Defined in UVMHS.Core.Static

Methods

refl :: forall (a :: 𝐍). a a Source #

Reflexive Iso Source # 
Instance details

Defined in UVMHS.Core.Classes.Morphism

Methods

refl :: Iso a a Source #

Reflexive (⌲) Source # 
Instance details

Defined in UVMHS.Core.Data.Lens

Methods

refl :: a a Source #

Reflexive (⟢) Source # 
Instance details

Defined in UVMHS.Core.Data.Lens

Methods

refl :: a a Source #

Reflexive (->) Source # 
Instance details

Defined in UVMHS.Core.Classes.Morphism

Methods

refl :: a -> a Source #

Reflexive Iso3 Source # 
Instance details

Defined in UVMHS.Core.Classes.Morphism

Methods

refl :: forall (a :: (Type -> Type) -> Type -> Type). Iso3 a a Source #

Reflexive Iso2 Source # 
Instance details

Defined in UVMHS.Core.Classes.Morphism

Methods

refl :: forall (a :: Type -> Type). Iso2 a a Source #

class Transitive (t :: k -> k -> Type) where Source #

Methods

(⊚) :: forall (b :: k) (c :: k) (a :: k). t b c -> t a b -> t a c infixl 7 Source #

Instances

Instances details
Transitive (<) Source # 
Instance details

Defined in UVMHS.Core.Static

Methods

(⊚) :: forall (b :: 𝐍) (c :: 𝐍) (a :: 𝐍). (b < c) -> (a < b) -> a < c Source #

Transitive (≤) Source # 
Instance details

Defined in UVMHS.Core.Static

Methods

(⊚) :: forall (b :: 𝐍) (c :: 𝐍) (a :: 𝐍). (b c) -> (a b) -> a c Source #

Transitive Iso Source # 
Instance details

Defined in UVMHS.Core.Classes.Morphism

Methods

(⊚) :: Iso b c -> Iso a b -> Iso a c Source #

Transitive (⌲) Source # 
Instance details

Defined in UVMHS.Core.Data.Lens

Methods

(⊚) :: (b c) -> (a b) -> a c Source #

Transitive (⟢) Source # 
Instance details

Defined in UVMHS.Core.Data.Lens

Methods

(⊚) :: (b c) -> (a b) -> a c Source #

Transitive (->) Source # 
Instance details

Defined in UVMHS.Core.Classes.Morphism

Methods

(⊚) :: (b -> c) -> (a -> b) -> a -> c Source #

Transitive Iso3 Source # 
Instance details

Defined in UVMHS.Core.Classes.Morphism

Methods

(⊚) :: forall (b :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Type -> Type) (a :: (Type -> Type) -> Type -> Type). Iso3 b c -> Iso3 a b -> Iso3 a c Source #

Transitive Iso2 Source # 
Instance details

Defined in UVMHS.Core.Classes.Morphism

Methods

(⊚) :: forall (b :: Type -> Type) (c :: Type -> Type) (a :: Type -> Type). Iso2 b c -> Iso2 a b -> Iso2 a c Source #

class (Reflexive t, Transitive t) => Category (t :: k -> k -> Type) Source #

Instances

Instances details
Category (≤) Source # 
Instance details

Defined in UVMHS.Core.Static

Category Iso Source # 
Instance details

Defined in UVMHS.Core.Classes.Morphism

Category (⌲) Source # 
Instance details

Defined in UVMHS.Core.Data.Lens

Category (⟢) Source # 
Instance details

Defined in UVMHS.Core.Data.Lens

Category (->) Source # 
Instance details

Defined in UVMHS.Core.Classes.Morphism

Category Iso3 Source # 
Instance details

Defined in UVMHS.Core.Classes.Morphism

Category Iso2 Source # 
Instance details

Defined in UVMHS.Core.Classes.Morphism

class Symmetric (t :: k -> k -> Type) where Source #

Methods

sym :: forall (a :: k) (b :: k). t a b -> t b a Source #

Instances

Instances details
Symmetric Iso Source # 
Instance details

Defined in UVMHS.Core.Classes.Morphism

Methods

sym :: Iso a b -> Iso b a Source #

Symmetric Iso3 Source # 
Instance details

Defined in UVMHS.Core.Classes.Morphism

Methods

sym :: forall (a :: (Type -> Type) -> Type -> Type) (b :: (Type -> Type) -> Type -> Type). Iso3 a b -> Iso3 b a Source #

Symmetric Iso2 Source # 
Instance details

Defined in UVMHS.Core.Classes.Morphism

Methods

sym :: forall (a :: Type -> Type) (b :: Type -> Type). Iso2 a b -> Iso2 b a Source #