oalg-base-3.0.0.0: Algebraic structures on oriented entities and limits as a tool kit to solve algebraic problems.
Copyright(c) Erich Gut
LicenseBSD3
Maintainerzerich.gut@gmail.com
Safe HaskellSafe-Inferred
LanguageHaskell2010

OAlg.Data.Constructable

Description

constructing values by there Form..

Synopsis

Constructable

class Exposable x => Constructable x where Source #

types with an associated form, which serves as a blueprint to construct a corresponding value.

A common setting for this structure is a module with a reducible type f (see Reducible) with public constructors - which serves as a form to be filled out - and in the same module a type e with a private constructor - lets say E - to hold the reduced f. Than an implementation would be

make f = E (reduce f)

and

form (E f) = f

Property Let x be an instance of the class Constructable than holds: For all x in x holds: make (form x) == x.

Methods

make :: Form x -> x Source #

constructor.

Instances

Instances details
Oriented x => Constructable (GLT x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.GeneralLinearGroup

Methods

make :: Form (GLT x) -> GLT x Source #

Entity x => Constructable (ProductSymbol x) Source # 
Instance details

Defined in OAlg.Entity.Product.ProductSymbol

Eq i => Constructable (Permutation i) Source # 
Instance details

Defined in OAlg.Entity.Sequence.Permutation

(Oriented a, Integral r) => Constructable (Product r a) Source # 
Instance details

Defined in OAlg.Entity.Product.Definition

Methods

make :: Form (Product r a) -> Product r a Source #

(Fibred a, Ord a, Semiring r, Commutative r) => Constructable (Sum r a) Source # 
Instance details

Defined in OAlg.Entity.Sum.Definition

Methods

make :: Form (Sum r a) -> Sum r a Source #

(DefaultValue d i x, Eq x) => Constructable (FSequence 'Lazy d i x) Source # 
Instance details

Defined in OAlg.Entity.Sequence.FSequence

Methods

make :: Form (FSequence 'Lazy d i x) -> FSequence 'Lazy d i x Source #

(DefaultValue d i x, Eq x) => Constructable (FSequence 'Strict d i x) Source # 
Instance details

Defined in OAlg.Entity.Sequence.FSequence

Methods

make :: Form (FSequence 'Strict d i x) -> FSequence 'Strict d i x Source #

Constructable (HomCo m s o x y) Source # 
Instance details

Defined in OAlg.Data.HomCo

Methods

make :: Form (HomCo m s o x y) -> HomCo m s o x y Source #

Constructable (SHom r s o h x y) Source # 
Instance details

Defined in OAlg.Category.SDuality

Methods

make :: Form (SHom r s o h x y) -> SHom r s o h x y Source #

cmap :: (Constructable x, Constructable y) => (Form x -> Form y) -> x -> y Source #

restriction of a f in Form x -> Form y.

Exposable

class Exposable x where Source #

types with an associated form type and a function form which exposes its values to its form.

Associated Types

type Form x Source #

the form.

Methods

form :: x -> Form x Source #

the associated form.

Instances

Instances details
Exposable (GLT x) Source # 
Instance details

Defined in OAlg.Entity.Matrix.GeneralLinearGroup

Associated Types

type Form (GLT x) 
Instance details

Defined in OAlg.Entity.Matrix.GeneralLinearGroup

type Form (GLT x) = GLTForm x

Methods

form :: GLT x -> Form (GLT x) Source #

Exposable (ProductSymbol x) Source # 
Instance details

Defined in OAlg.Entity.Product.ProductSymbol

Associated Types

type Form (ProductSymbol x) 
Instance details

Defined in OAlg.Entity.Product.ProductSymbol

Exposable (Permutation i) Source # 
Instance details

Defined in OAlg.Entity.Sequence.Permutation

Associated Types

type Form (Permutation i) 
Instance details

Defined in OAlg.Entity.Sequence.Permutation

Exposable (Product r a) Source # 
Instance details

Defined in OAlg.Entity.Product.Definition

Associated Types

type Form (Product r a) 
Instance details

Defined in OAlg.Entity.Product.Definition

type Form (Product r a) = ProductForm r a

Methods

form :: Product r a -> Form (Product r a) Source #

Exposable (Sum r a) Source # 
Instance details

Defined in OAlg.Entity.Sum.Definition

Associated Types

type Form (Sum r a) 
Instance details

Defined in OAlg.Entity.Sum.Definition

type Form (Sum r a) = SumForm r a

Methods

form :: Sum r a -> Form (Sum r a) Source #

(DefaultValue d i x, Eq x) => Exposable (FSequence s d i x) Source # 
Instance details

Defined in OAlg.Entity.Sequence.FSequence

Associated Types

type Form (FSequence s d i x) 
Instance details

Defined in OAlg.Entity.Sequence.FSequence

type Form (FSequence s d i x) = FSequenceForm d i x

Methods

form :: FSequence s d i x -> Form (FSequence s d i x) Source #

Exposable (HomCo m s o x y) Source # 
Instance details

Defined in OAlg.Data.HomCo

Associated Types

type Form (HomCo m s o x y) 
Instance details

Defined in OAlg.Data.HomCo

type Form (HomCo m s o x y) = PathCo m s o x y

Methods

form :: HomCo m s o x y -> Form (HomCo m s o x y) Source #

Exposable (SHom r s o h x y) Source # 
Instance details

Defined in OAlg.Category.SDuality

Associated Types

type Form (SHom r s o h x y) 
Instance details

Defined in OAlg.Category.SDuality

type Form (SHom r s o h x y) = PathSMorphism r s o h x y

Methods

form :: SHom r s o h x y -> Form (SHom r s o h x y) Source #

restrict :: Exposable x => (Form x -> y) -> x -> y Source #

restriction of a f in Form x -> y.