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

Description

 
Synopsis

Documentation

data Sort Source #

A universe of recognized sorts

Constructors

BooleanSort

booleans (true, false)

IntegralSort

integers (..., -1, 0, 1, ...)

ArraySort

arrays indexed by Sort sort, containing elements of element sort

Fields

Instances
Eq Sort Source # 
Instance details

Defined in Data.Expression.Sort

Methods

(==) :: Sort -> Sort -> Bool #

(/=) :: Sort -> Sort -> Bool #

Show Sort Source # 
Instance details

Defined in Data.Expression.Sort

Methods

showsPrec :: Int -> Sort -> ShowS #

show :: Sort -> String #

showList :: [Sort] -> ShowS #

SDecide Sort => SDecide Sort Source # 
Instance details

Defined in Data.Expression.Sort

Methods

(%~) :: Sing a -> Sing b -> Decision (a :~: b) #

SingKind Sort Source # 
Instance details

Defined in Data.Expression.Sort

Associated Types

type Demote Sort = (r :: Type) #

SingI BooleanSort Source # 
Instance details

Defined in Data.Expression.Sort

SingI IntegralSort Source # 
Instance details

Defined in Data.Expression.Sort

IEq1 IfThenElseF Source # 
Instance details

Defined in Data.Expression.IfThenElse

Methods

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

IEq1 ArrayF Source # 
Instance details

Defined in Data.Expression.Array

Methods

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

IEq1 ArithmeticF Source # 
Instance details

Defined in Data.Expression.Arithmetic

Methods

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

IEq1 NegationF Source # 
Instance details

Defined in Data.Expression

Methods

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

IEq1 DisjunctionF Source # 
Instance details

Defined in Data.Expression

Methods

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

IEq1 ConjunctionF Source # 
Instance details

Defined in Data.Expression

Methods

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

IFoldable IfThenElseF Source # 
Instance details

Defined in Data.Expression.IfThenElse

Methods

ifold :: Monoid m => IfThenElseF (Const m) i' -> Const m i' Source #

IFoldable ArrayF Source # 
Instance details

Defined in Data.Expression.Array

Methods

ifold :: Monoid m => ArrayF (Const m) i' -> Const m i' Source #

IFoldable ArithmeticF Source # 
Instance details

Defined in Data.Expression.Arithmetic

Methods

ifold :: Monoid m => ArithmeticF (Const m) i' -> Const m i' Source #

IFoldable NegationF Source # 
Instance details

Defined in Data.Expression

Methods

ifold :: Monoid m => NegationF (Const m) i' -> Const m i' Source #

IFoldable DisjunctionF Source # 
Instance details

Defined in Data.Expression

Methods

ifold :: Monoid m => DisjunctionF (Const m) i' -> Const m i' Source #

IFoldable ConjunctionF Source # 
Instance details

Defined in Data.Expression

Methods

ifold :: Monoid m => ConjunctionF (Const m) i' -> Const m i' Source #

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 #

ITraversable IfThenElseF Source # 
Instance details

Defined in Data.Expression.IfThenElse

Methods

itraverse :: Applicative f => (forall (i' :: i). a i' -> f (b i')) -> forall (i' :: i). IfThenElseF a i' -> f (IfThenElseF b 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 #

ITraversable ArithmeticF Source # 
Instance details

Defined in Data.Expression.Arithmetic

Methods

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

ITraversable NegationF Source # 
Instance details

Defined in Data.Expression

Methods

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

ITraversable DisjunctionF Source # 
Instance details

Defined in Data.Expression

Methods

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

ITraversable ConjunctionF Source # 
Instance details

Defined in Data.Expression

Methods

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

IShow IfThenElseF Source # 
Instance details

Defined in Data.Expression.IfThenElse

IShow ArrayF Source # 
Instance details

Defined in Data.Expression.Array

IShow ArithmeticF Source # 
Instance details

Defined in Data.Expression.Arithmetic

IShow NegationF Source # 
Instance details

Defined in Data.Expression

IShow DisjunctionF Source # 
Instance details

Defined in Data.Expression

IShow ConjunctionF Source # 
Instance details

Defined in Data.Expression

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

Defined in Data.Expression.Equality

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

Defined in Data.Expression

Methods

ishow :: VarF (Const String) i -> Const String i Source #

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

Defined in Data.Expression

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

Defined in Data.Expression

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

Defined in Data.Expression.Equality

Methods

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

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

Defined in Data.Expression

Methods

ieq1 :: IEq a => ExistentialF v a j -> ExistentialF v a j -> Bool Source #

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

Defined in Data.Expression

Methods

ieq1 :: IEq a => UniversalF v a j -> UniversalF v a j -> Bool Source #

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

Defined in Data.Expression

Methods

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

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

Defined in Data.Expression.Equality

Methods

ifold :: Monoid m => EqualityF (Const m) i' -> Const m i' Source #

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

Defined in Data.Expression

Methods

ifold :: Monoid m => ExistentialF v (Const m) i' -> Const m i' Source #

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

Defined in Data.Expression

Methods

ifold :: Monoid m => UniversalF v (Const m) i' -> Const m i' Source #

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

Defined in Data.Expression

Methods

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

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

Defined in Data.Expression.Equality

Methods

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

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

Defined in Data.Expression

Methods

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

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

Defined in Data.Expression

Methods

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

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

Defined in Data.Expression

Methods

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

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

Defined in Data.Expression

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

Defined in Data.Expression

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

Defined in Data.Expression

(SingI n1, SingI n2) => SingI (ArraySort n1 n2 :: Sort) Source # 
Instance details

Defined in Data.Expression.Sort

Methods

sing :: Sing (ArraySort n1 n2) #

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

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

Defined in Data.Expression.IfThenElse

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

Defined in Data.Expression.Array

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

Defined in Data.Expression.Arithmetic

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

Defined in Data.Expression

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

Defined in Data.Expression

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

Defined in Data.Expression

(EqualityF :: (Sort -> Type) -> Sort -> Type) :<: f => Parseable (EqualityF :: (k -> Type) -> Sort -> Type) f Source # 
Instance details

Defined in Data.Expression.Equality

(ExistentialF v :<: f, SingI v) => Parseable (ExistentialF v :: (Sort -> Type) -> Sort -> Type) f Source # 
Instance details

Defined in Data.Expression

(UniversalF v :<: f, SingI v) => Parseable (UniversalF v :: (Sort -> Type) -> Sort -> Type) f Source # 
Instance details

Defined in Data.Expression

(VarF :: (Sort -> Type) -> Sort -> Type) :<: f => Parseable (VarF :: k -> Sort -> Type) f Source # 
Instance details

Defined in Data.Expression

SingI d => SingI (TyCon1 (ArraySort d) :: Sort ~> Sort) Source # 
Instance details

Defined in Data.Expression.Sort

Methods

sing :: Sing (TyCon1 (ArraySort d)) #

SingI (TyCon2 ArraySort) Source # 
Instance details

Defined in Data.Expression.Sort

Methods

sing :: Sing (TyCon2 ArraySort) #

data Sing (a :: Sort) Source # 
Instance details

Defined in Data.Expression.Sort

data Sing (a :: Sort) where
type Demote Sort Source # 
Instance details

Defined in Data.Expression.Sort

data family Sing (a :: k) :: Type #

The singleton kind-indexed data family.

Instances
data Sing (a :: Bool) 
Instance details

Defined in Data.Singletons.Prelude.Instances

data Sing (a :: Bool) where
data Sing (a :: Ordering) 
Instance details

Defined in Data.Singletons.Prelude.Instances

data Sing (a :: Ordering) where
data Sing (n :: Nat) 
Instance details

Defined in Data.Singletons.TypeLits.Internal

data Sing (n :: Nat) where
data Sing (n :: Symbol) 
Instance details

Defined in Data.Singletons.TypeLits.Internal

data Sing (n :: Symbol) where
data Sing (a :: ()) 
Instance details

Defined in Data.Singletons.Prelude.Instances

data Sing (a :: ()) where
data Sing (a :: Void) 
Instance details

Defined in Data.Singletons.Prelude.Instances

data Sing (a :: Void)
data Sing (a :: All) 
Instance details

Defined in Data.Singletons.Prelude.Semigroup.Internal

data Sing (a :: All) where
data Sing (a :: Any) 
Instance details

Defined in Data.Singletons.Prelude.Semigroup.Internal

data Sing (a :: Any) where
data Sing (a :: Sort) Source # 
Instance details

Defined in Data.Expression.Sort

data Sing (a :: Sort) where
data Sing (b :: [a]) 
Instance details

Defined in Data.Singletons.Prelude.Instances

data Sing (b :: [a]) where
  • SNil :: forall a (b :: [a]). Sing ([] :: [a])
  • SCons :: forall a (b :: [a]) (n1 :: a) (n2 :: [a]). Sing n1 -> Sing n2 -> Sing (n1 ': n2)
data Sing (b :: Maybe a) 
Instance details

Defined in Data.Singletons.Prelude.Instances

data Sing (b :: Maybe a) where
data Sing (b :: Min a) 
Instance details

Defined in Data.Singletons.Prelude.Semigroup.Internal

data Sing (b :: Min a) where
data Sing (b :: Max a) 
Instance details

Defined in Data.Singletons.Prelude.Semigroup.Internal

data Sing (b :: Max a) where
data Sing (b :: First a) 
Instance details

Defined in Data.Singletons.Prelude.Semigroup.Internal

data Sing (b :: First a) where
data Sing (b :: Last a) 
Instance details

Defined in Data.Singletons.Prelude.Semigroup.Internal

data Sing (b :: Last a) where
data Sing (a :: WrappedMonoid m) 
Instance details

Defined in Data.Singletons.Prelude.Semigroup.Internal

data Sing (a :: WrappedMonoid m) where
data Sing (b :: Option a) 
Instance details

Defined in Data.Singletons.Prelude.Semigroup.Internal

data Sing (b :: Option a) where
data Sing (b :: Identity a) 
Instance details

Defined in Data.Singletons.Prelude.Instances

data Sing (b :: Identity a) where
data Sing (b :: First a) 
Instance details

Defined in Data.Singletons.Prelude.Monoid

data Sing (b :: First a) where
data Sing (b :: Last a) 
Instance details

Defined in Data.Singletons.Prelude.Monoid

data Sing (b :: Last a) where
data Sing (b :: Dual a) 
Instance details

Defined in Data.Singletons.Prelude.Semigroup.Internal

data Sing (b :: Dual a) where
data Sing (b :: Sum a) 
Instance details

Defined in Data.Singletons.Prelude.Semigroup.Internal

data Sing (b :: Sum a) where
data Sing (b :: Product a) 
Instance details

Defined in Data.Singletons.Prelude.Semigroup.Internal

data Sing (b :: Product a) where
data Sing (b :: Down a) 
Instance details

Defined in Data.Singletons.Prelude.Ord

data Sing (b :: Down a) where
data Sing (b :: NonEmpty a) 
Instance details

Defined in Data.Singletons.Prelude.Instances

data Sing (b :: NonEmpty a) where
data Sing (b :: Endo a) 
Instance details

Defined in Data.Singletons.Prelude.Foldable

data Sing (b :: Endo a) where
data Sing (b :: MaxInternal a) 
Instance details

Defined in Data.Singletons.Prelude.Foldable

data Sing (b :: MaxInternal a) where
data Sing (b :: MinInternal a) 
Instance details

Defined in Data.Singletons.Prelude.Foldable

data Sing (b :: MinInternal a) where
data Sing (c :: Either a b) 
Instance details

Defined in Data.Singletons.Prelude.Instances

data Sing (c :: Either a b) where
data Sing (c :: (a, b)) 
Instance details

Defined in Data.Singletons.Prelude.Instances

data Sing (c :: (a, b)) where
data Sing (c :: Arg a b) 
Instance details

Defined in Data.Singletons.Prelude.Semigroup

data Sing (c :: Arg a b) where
newtype Sing (f :: k1 ~> k2) 
Instance details

Defined in Data.Singletons.Internal

newtype Sing (f :: k1 ~> k2) = SLambda {}
data Sing (b :: StateL s a) 
Instance details

Defined in Data.Singletons.Prelude.Traversable

data Sing (b :: StateL s a) where
  • SStateL :: forall s a (b :: StateL s a) (x :: s ~> (s, a)). Sing x -> Sing (StateL x)
data Sing (b :: StateR s a) 
Instance details

Defined in Data.Singletons.Prelude.Traversable

data Sing (b :: StateR s a) where
  • SStateR :: forall s a (b :: StateR s a) (x :: s ~> (s, a)). Sing x -> Sing (StateR x)
data Sing (d :: (a, b, c)) 
Instance details

Defined in Data.Singletons.Prelude.Instances

data Sing (d :: (a, b, c)) where
data Sing (c :: Const a b) 
Instance details

Defined in Data.Singletons.Prelude.Const

data Sing (c :: Const a b) where
data Sing (e :: (a, b, c, d)) 
Instance details

Defined in Data.Singletons.Prelude.Instances

data Sing (e :: (a, b, c, d)) where
data Sing (f :: (a, b, c, d, e)) 
Instance details

Defined in Data.Singletons.Prelude.Instances

data Sing (f :: (a, b, c, d, e)) where
  • STuple5 :: forall a b c d e (f :: (a, b, c, d, e)) (n1 :: a) (n2 :: b) (n3 :: c) (n4 :: d) (n5 :: e). Sing n1 -> Sing n2 -> Sing n3 -> Sing n4 -> Sing n5 -> Sing ((,,,,) n1 n2 n3 n4 n5)
data Sing (g :: (a, b, c, d, e, f)) 
Instance details

Defined in Data.Singletons.Prelude.Instances

data Sing (g :: (a, b, c, d, e, f)) where
  • STuple6 :: forall a b c d e f (g :: (a, b, c, d, e, f)) (n1 :: a) (n2 :: b) (n3 :: c) (n4 :: d) (n5 :: e) (n6 :: f). Sing n1 -> Sing n2 -> Sing n3 -> Sing n4 -> Sing n5 -> Sing n6 -> Sing ((,,,,,) n1 n2 n3 n4 n5 n6)
data Sing (h :: (a, b, c, d, e, f, g)) 
Instance details

Defined in Data.Singletons.Prelude.Instances

data Sing (h :: (a, b, c, d, e, f, g)) where
  • STuple7 :: forall a b c d e f g (h :: (a, b, c, d, e, f, g)) (n1 :: a) (n2 :: b) (n3 :: c) (n4 :: d) (n5 :: e) (n6 :: f) (n7 :: g). Sing n1 -> Sing n2 -> Sing n3 -> Sing n4 -> Sing n5 -> Sing n6 -> Sing n7 -> Sing ((,,,,,,) n1 n2 n3 n4 n5 n6 n7)

withSort :: forall a (s :: Sort). Sing s -> (SingI s => a) -> a Source #

Turn implicit sort parameter into explicit one

data DynamicSort where Source #

Some sort (obtained for example during parsing)

Constructors

DynamicSort :: forall (s :: Sort). Sing s -> DynamicSort 
Instances
Eq DynamicSort Source # 
Instance details

Defined in Data.Expression.Sort

data DynamicallySorted (d :: Sort -> *) where Source #

A value of some sort

Constructors

DynamicallySorted :: forall (s :: Sort) d. Sing s -> d s -> DynamicallySorted d 
Instances
(forall (s :: Sort). Eq (d s)) => Eq (DynamicallySorted d) Source # 
Instance details

Defined in Data.Expression.Sort

(forall (s :: Sort). Show (d s)) => Show (DynamicallySorted d) Source # 
Instance details

Defined in Data.Expression.Sort

type DynamicallySortedFix f = DynamicallySorted (IFix f) Source #

An expression of some sort (obtained for example during parsing)

parseSort :: Parser DynamicSort Source #

Parser that accepts sort definitions such as bool, int, array int int, array int (array ...).

toDynamicallySorted :: forall d (s :: Sort). SingI s => d s -> DynamicallySorted d Source #

Converts a statically sorted expression to a dynamically sorted one.

toStaticSort :: forall (s :: Sort). SingI s => DynamicSort -> Maybe (Sing s) Source #

Tries to convert some sort (DynamicSort) to a requested sort.

toStaticallySorted :: forall d (s :: Sort). SingI s => DynamicallySorted d -> Maybe (d s) Source #

Tries to convert an expression (DynamicallySorted) of some sort to an expression of requested sort. Performs no conversions.