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.Array

Description

 
Synopsis

Documentation

data ArrayF a (s :: Sort) where Source #

A functor representing array-theoretic terms (select and store also known as "read" and "write")

Constructors

Select :: Sing i -> Sing e -> a (ArraySort i e) -> a i -> ArrayF a e 
Store :: Sing i -> Sing e -> a (ArraySort i e) -> a i -> a e -> ArrayF a (ArraySort i e) 
Instances
IEq1 ArrayF Source # 
Instance details

Defined in Data.Expression.Array

Methods

ieq1 :: IEq a => ArrayF a j -> ArrayF a j -> Bool Source #

IFoldable ArrayF Source # 
Instance details

Defined in Data.Expression.Array

Methods

ifold :: Monoid m => ArrayF (Const m) i' -> Const m 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 #

ITraversable ArrayF Source # 
Instance details

Defined in Data.Expression.Array

Methods

itraverse :: Applicative f => (forall (i' :: i). a i' -> f (b i')) -> forall (i' :: i). ArrayF a i' -> f (ArrayF b i') Source #

IShow ArrayF Source # 
Instance details

Defined in Data.Expression.Array

Heyting (ALia BooleanSort) Source # 
Instance details

Defined in Data.Expression

Heyting (QFALia 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

BoundedJoinSemiLattice (ALia BooleanSort) Source # 
Instance details

Defined in Data.Expression

BoundedJoinSemiLattice (QFALia 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

ArrayF :<: f => Parseable ArrayF f Source # 
Instance details

Defined in Data.Expression.Array

select :: (ArrayF :<: f, SingI i, SingI e) => IFix f (ArraySort i e) -> IFix f i -> IFix f e Source #

A smart constructor for select

store :: (ArrayF :<: f, SingI i, SingI e) => IFix f (ArraySort i e) -> IFix f i -> IFix f e -> IFix f (ArraySort i e) Source #

A smart constructor for store

accesses :: forall f (s :: Sort). (ArrayF :<: f, ITraversable f) => IFix f s -> [DynamicArrayAccess f] Source #

Collects pairs of arrays and indices that appear together in some select and/or store within an expression

toStaticallySortedArrayAccess :: forall f (i :: Sort) (e :: Sort). (SingI i, SingI e) => DynamicArrayAccess f -> Maybe (IFix f (ArraySort i e), IFix f i) Source #

Tries to convert access to an array of some sort to an access to an array of a specific sort

newtype ArrayAccess f (i :: Sort) (e :: Sort) Source #

Constructors

ArrayAccess 

Fields

  • getAA :: (Array f e i, Index f i)
     
Instances
(IFunctor f, IShow f) => Show (ArrayAccess f i e) Source # 
Instance details

Defined in Data.Expression.Array

Methods

showsPrec :: Int -> ArrayAccess f i e -> ShowS #

show :: ArrayAccess f i e -> String #

showList :: [ArrayAccess f i e] -> ShowS #