expressions-0.5: Expressions and Formulae a la carte

Copyright(C) 2017-18 Jakub Daniel
LicenseBSD-style (see the file LICENSE)
MaintainerJakub Daniel <jakub.daniel@protonmail.com>
Stabilityexperimental
Safe HaskellNone
LanguageHaskell2010

Data.Expression.Utils.Indexed.Functor

Description

 
Synopsis

Documentation

newtype IFix f i Source #

A fixpoint of a functor in indexed category

Constructors

IFix 

Fields

Instances
IEq1 f => IEq (IFix f :: i -> Type) Source # 
Instance details

Defined in Data.Expression.Utils.Indexed.Functor

Methods

ieq :: IFix f j -> IFix f j -> Bool Source #

Heyting (ALia BooleanSort) Source # 
Instance details

Defined in Data.Expression

Heyting (QFALia BooleanSort) Source # 
Instance details

Defined in Data.Expression

Heyting (Lia BooleanSort) Source # 
Instance details

Defined in Data.Expression

Heyting (QFLia BooleanSort) Source # 
Instance details

Defined in Data.Expression

Heyting (QFLogic BooleanSort) Source # 
Instance details

Defined in Data.Expression

Lattice (ALia BooleanSort) Source # 
Instance details

Defined in Data.Expression

Lattice (QFALia BooleanSort) Source # 
Instance details

Defined in Data.Expression

Lattice (Lia BooleanSort) Source # 
Instance details

Defined in Data.Expression

Lattice (QFLia BooleanSort) Source # 
Instance details

Defined in Data.Expression

Lattice (QFLogic BooleanSort) Source # 
Instance details

Defined in Data.Expression

BoundedJoinSemiLattice (ALia BooleanSort) Source # 
Instance details

Defined in Data.Expression

BoundedJoinSemiLattice (QFALia BooleanSort) Source # 
Instance details

Defined in Data.Expression

BoundedJoinSemiLattice (Lia BooleanSort) Source # 
Instance details

Defined in Data.Expression

BoundedJoinSemiLattice (QFLia BooleanSort) Source # 
Instance details

Defined in Data.Expression

BoundedJoinSemiLattice (QFLogic BooleanSort) Source # 
Instance details

Defined in Data.Expression

BoundedMeetSemiLattice (ALia BooleanSort) Source # 
Instance details

Defined in Data.Expression

Methods

top :: ALia BooleanSort #

BoundedMeetSemiLattice (QFALia BooleanSort) Source # 
Instance details

Defined in Data.Expression

BoundedMeetSemiLattice (Lia BooleanSort) Source # 
Instance details

Defined in Data.Expression

Methods

top :: Lia BooleanSort #

BoundedMeetSemiLattice (QFLia BooleanSort) Source # 
Instance details

Defined in Data.Expression

BoundedMeetSemiLattice (QFLogic BooleanSort) Source # 
Instance details

Defined in Data.Expression

IEq1 f => Eq (IFix f i) Source # 
Instance details

Defined in Data.Expression.Utils.Indexed.Functor

Methods

(==) :: IFix f i -> IFix f i -> Bool #

(/=) :: IFix f i -> IFix f i -> Bool #

(IFunctor f, IShow f) => Show (IFix f i) Source # 
Instance details

Defined in Data.Expression.Utils.Indexed.Functor

Methods

showsPrec :: Int -> IFix f i -> ShowS #

show :: IFix f i -> String #

showList :: [IFix f i] -> ShowS #

class IFunctor (f :: (i -> *) -> i -> *) where Source #

A functor in indexed category

Methods

imap :: (forall i'. a i' -> b i') -> forall i'. f a i' -> f b i' Source #

index :: forall a i'. f a i' -> Sing i' Source #

Instances
IFunctor IfThenElseF Source # 
Instance details

Defined in Data.Expression.IfThenElse

Methods

imap :: (forall (i' :: i). a i' -> b i') -> forall (i' :: i). IfThenElseF a i' -> IfThenElseF b i' Source #

index :: IfThenElseF a i' -> Sing i' Source #

IFunctor ArrayF Source # 
Instance details

Defined in Data.Expression.Array

Methods

imap :: (forall (i' :: i). a i' -> b i') -> forall (i' :: i). ArrayF a i' -> ArrayF b i' Source #

index :: ArrayF a i' -> Sing i' Source #

IFunctor ArithmeticF Source # 
Instance details

Defined in Data.Expression.Arithmetic

Methods

imap :: (forall (i' :: i). a i' -> b i') -> forall (i' :: i). ArithmeticF a i' -> ArithmeticF b i' Source #

index :: ArithmeticF a i' -> Sing i' Source #

IFunctor NegationF Source # 
Instance details

Defined in Data.Expression

Methods

imap :: (forall (i' :: i). a i' -> b i') -> forall (i' :: i). NegationF a i' -> NegationF b i' Source #

index :: NegationF a i' -> Sing i' Source #

IFunctor DisjunctionF Source # 
Instance details

Defined in Data.Expression

Methods

imap :: (forall (i' :: i). a i' -> b i') -> forall (i' :: i). DisjunctionF a i' -> DisjunctionF b i' Source #

index :: DisjunctionF a i' -> Sing i' Source #

IFunctor ConjunctionF Source # 
Instance details

Defined in Data.Expression

Methods

imap :: (forall (i' :: i). a i' -> b i') -> forall (i' :: i). ConjunctionF a i' -> ConjunctionF b i' Source #

index :: ConjunctionF a i' -> Sing i' Source #

IFunctor (EqualityF :: (Sort -> Type) -> Sort -> Type) Source # 
Instance details

Defined in Data.Expression.Equality

Methods

imap :: (forall (i' :: i). a i' -> b i') -> forall (i' :: i). EqualityF a i' -> EqualityF b i' Source #

index :: EqualityF a i' -> Sing i' Source #

IFunctor (ExistentialF v :: (Sort -> Type) -> Sort -> Type) Source # 
Instance details

Defined in Data.Expression

Methods

imap :: (forall (i' :: i). a i' -> b i') -> forall (i' :: i). ExistentialF v a i' -> ExistentialF v b i' Source #

index :: ExistentialF v a i' -> Sing i' Source #

IFunctor (UniversalF v :: (Sort -> Type) -> Sort -> Type) Source # 
Instance details

Defined in Data.Expression

Methods

imap :: (forall (i' :: i). a i' -> b i') -> forall (i' :: i). UniversalF v a i' -> UniversalF v b i' Source #

index :: UniversalF v a i' -> Sing i' Source #

IFunctor (VarF :: (Sort -> Type) -> Sort -> Type) Source # 
Instance details

Defined in Data.Expression

Methods

imap :: (forall (i' :: i). a i' -> b i') -> forall (i' :: i). VarF a i' -> VarF b i' Source #

index :: VarF a i' -> Sing i' Source #

(IFunctor f, IFunctor g) => IFunctor (f :+: g :: (i -> Type) -> i -> Type) Source # 
Instance details

Defined in Data.Expression.Utils.Indexed.Sum

Methods

imap :: (forall (i' :: i0). a i' -> b i') -> forall (i' :: i0). (f :+: g) a i' -> (f :+: g) b i' Source #

index :: (f :+: g) a i' -> Sing i' Source #

icata :: IFunctor f => (forall i. f a i -> a i) -> forall i. IFix f i -> a i Source #

Indexed catamorphism