| Copyright | (c) Erich Gut |
|---|---|
| License | BSD3 |
| Maintainer | zerich.gut@gmail.com |
| Safe Haskell | Safe-Inferred |
| Language | Haskell2010 |
OAlg.Structure.Definition
Description
introducing the idiom of Structures as parameterized constraints.
Synopsis
- type family Structure s x
- data Struct s x where
- tauTuple :: Struct s x -> Struct t x -> Struct (s, t) x
- tauFst :: Struct (s, t) x -> Struct s x
- tauSnd :: Struct (s, t) x -> Struct t x
- type family Structure2 m x y
- data Struct2 m x y where
- Struct2 :: forall m x y. Structure2 m x y => Struct2 m x y
- class Transformable s t where
- tauType :: Struct s x -> Struct Type x
- type Transformable1 (f :: Type -> Type) s = TransformableG f s s
- tau1 :: Transformable1 f s => Struct s x -> Struct s (f x)
- class Transformable s Typ => TransformableTyp s
- class Transformable s Type => TransformableType s
- class TransformableG (t :: Type -> Type) u v where
- tauG' :: TransformableG t u v => q t -> Struct u x -> Struct v (t x)
- class TransformableG o s s => TransformableGRefl (o :: Type -> Type) s
- data Typ
- tauTyp :: Transformable s Typ => Struct s x -> Struct Typ x
- data Ord'
- data Bol
- data SubStruct t s
- tauGSubStruct :: TransformableG t u v => Struct (SubStruct u s) x -> Struct v (t x)
- tauSubStruct :: Struct (SubStruct t s) x -> Struct t x
Structure
type family Structure s x Source #
parameterized constraint for a type x.
Instances
data Struct s x where Source #
attest that the type x admits the constrains given by the parameter s.
Instances
| Transformable s Typ => TestEquality (Struct s :: Type -> Type) Source # | |
Defined in OAlg.Structure.Definition | |
| Eq1 (Struct s) Source # | |
| Show1 (Struct s) Source # | |
| Singular (Struct s) Source # | |
Defined in OAlg.Structure.Definition | |
| Validable1 (Struct s) Source # | |
| Show (Struct s x) Source # | |
| Eq (Struct s x) Source # | |
| Validable (Struct s x) Source # | |
type family Structure2 m x y Source #
parameterized constraint for a two types x and y.
data Struct2 m x y where Source #
attest that the two types x and y admit the constraint given by the parameter s.
Constructors
| Struct2 :: forall m x y. Structure2 m x y => Struct2 m x y |
Transformable
class Transformable s t where Source #
transforming structural attests.
Instances
type Transformable1 (f :: Type -> Type) s = TransformableG f s s Source #
transforming structural attests.
tau1 :: Transformable1 f s => Struct s x -> Struct s (f x) Source #
transformation1. (needed for backward compatibility!).
class Transformable s Typ => TransformableTyp s Source #
helper class to avoid undecidable instances.
Instances
| TransformableTyp Abl Source # | |
Defined in OAlg.Structure.Additive.Definition | |
| TransformableTyp Add Source # | |
Defined in OAlg.Structure.Additive.Definition | |
| TransformableTyp Dst Source # | |
Defined in OAlg.Structure.Distributive.Definition | |
| TransformableTyp Fbr Source # | |
Defined in OAlg.Structure.Fibred.Definition | |
| TransformableTyp FbrOrt Source # | |
Defined in OAlg.Structure.FibredOriented | |
| TransformableTyp Mlt Source # | |
Defined in OAlg.Structure.Multiplicative.Definition | |
| TransformableTyp Ort Source # | |
Defined in OAlg.Structure.Oriented.Definition | |
| TransformableTyp OrtX Source # | |
Defined in OAlg.Structure.Oriented.Definition | |
| TransformableTyp (Alg k) Source # | |
Defined in OAlg.Structure.Algebraic.Definition | |
| TransformableTyp (Vec k) Source # | |
Defined in OAlg.Structure.Vectorial.Definition | |
class Transformable s Type => TransformableType s Source #
helper class to avoid undecidable instances.
Instances
| TransformableType EqE Source # | |
Defined in OAlg.Data.Validable | |
| TransformableType Dst Source # | |
Defined in OAlg.Structure.Distributive.Definition | |
| TransformableType DstX Source # | |
Defined in OAlg.Structure.Distributive.Proposition | |
| TransformableType FbrOrtX Source # | |
Defined in OAlg.Structure.FibredOriented | |
| TransformableType Mlt Source # | |
Defined in OAlg.Structure.Multiplicative.Definition | |
| TransformableType MltX Source # | |
Defined in OAlg.Structure.Multiplicative.Proposition | |
| TransformableType Ort Source # | |
Defined in OAlg.Structure.Oriented.Definition | |
| TransformableType OrtX Source # | |
Defined in OAlg.Structure.Oriented.Definition | |
| TransformableType OrtSiteX Source # | |
Defined in OAlg.Structure.Oriented.X | |
| TransformableType (s, Sld i) Source # | |
Defined in OAlg.Entity.Slice.Sliced | |
class TransformableG (t :: Type -> Type) u v where Source #
transforming structural attests.
Instances
class TransformableG o s s => TransformableGRefl (o :: Type -> Type) s Source #
helper class to avoid undecidable instances.
Instances
| TransformableGRefl Matrix Dst Source # | |
Defined in OAlg.Entity.Matrix.Definition | |
| TransformableGRefl Matrix DstX Source # | |
Defined in OAlg.Entity.Matrix.Definition | |
| TransformableGRefl Op Dst Source # | |
Defined in OAlg.Structure.Distributive.Definition | |
| TransformableGRefl Op DstX Source # | |
Defined in OAlg.Structure.Distributive.Proposition | |
| TransformableGRefl Op FbrOrt Source # | |
Defined in OAlg.Structure.FibredOriented | |
| TransformableGRefl Op Mlt Source # | |
Defined in OAlg.Structure.Multiplicative.Definition | |
| TransformableGRefl Op Ort Source # | |
Defined in OAlg.Structure.Oriented.Opposite | |
| TransformableGRefl Op OrtX Source # | |
Defined in OAlg.Structure.Oriented.Opposite | |
| TransformableGRefl Op OrtSiteX Source # | |
Defined in OAlg.Structure.Oriented.X | |
| TransformableGRefl Op (Dst, Sld i) Source # | |
Defined in OAlg.Entity.Slice.Sliced | |
| TransformableGRefl Op (Mlt, Sld i) Source # | |
Defined in OAlg.Entity.Slice.Sliced | |
| TransformableGRefl Op (Ort, Sld i) Source # | |
Defined in OAlg.Entity.Slice.Sliced | |
Some Structure Types
type index for Typeable structures.
Instances
type index for ordered structures.
Instances
| ApplicativeG Set (Map Ord') (->) Source # | |
| FunctorialG Set (Map Ord') (->) Source # | |
Defined in OAlg.Entity.Sequence.Set | |
| type Structure Ord' x Source # | |
Defined in OAlg.Structure.Definition | |
type index for Boolean structures.
type index for parameterized sub structures.
tauGSubStruct :: TransformableG t u v => Struct (SubStruct u s) x -> Struct v (t x) Source #
generalized transformation of a sub structure.