oalg-base-1.1.4.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 #

Constructable (IsoOp s a b) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

make :: Form (IsoOp s a b) -> IsoOp s a b Source #

Constructable (IsoOpMap f s a b) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Methods

make :: Form (IsoOpMap f s a b) -> IsoOpMap f s a b 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) Source #

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) Source #

Exposable (Permutation i) Source # 
Instance details

Defined in OAlg.Entity.Sequence.Permutation

Associated Types

type Form (Permutation i) Source #

Exposable (Product r a) Source # 
Instance details

Defined in OAlg.Entity.Product.Definition

Associated Types

type Form (Product r a) Source #

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) Source #

Methods

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

Exposable (IsoOp s a b) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Associated Types

type Form (IsoOp s a b) Source #

Methods

form :: IsoOp s a b -> Form (IsoOp s a b) Source #

Exposable (IsoOpMap f s a b) Source # 
Instance details

Defined in OAlg.Hom.Oriented.Definition

Associated Types

type Form (IsoOpMap f s a b) Source #

Methods

form :: IsoOpMap f s a b -> Form (IsoOpMap f s a b) Source #

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

restriction of a f in Form x -> y.