Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Defines types and functions for creating mult-definitions.
Synopsis
- data MultiDefn e
- data DefiningExpr e
- mkMultiDefn :: String -> QuantityDict -> Sentence -> NonEmpty (DefiningExpr e) -> MultiDefn e
- mkMultiDefnForQuant :: QuantityDict -> Sentence -> NonEmpty (DefiningExpr e) -> MultiDefn e
- mkDefiningExpr :: String -> [UID] -> Sentence -> e -> DefiningExpr e
- multiDefnGenQD :: MultiDefn e -> DefiningExpr e -> QDefinition e
- multiDefnGenQDByUID :: MultiDefn e -> UID -> QDefinition e
Types
MultiDefn
s are QDefinition factories, used for showing one or more ways
we can define a QDefinition.
Instances
Idea (MultiDefn e) Source # | |
NamedIdea (MultiDefn e) Source # | |
Defined in Theory.Drasil.MultiDefn | |
MayHaveUnit (MultiDefn e) Source # | |
ConceptDomain (MultiDefn e) Source # | The concept domain of a MultiDefn is the union of the concept domains of the underlying variants. |
Defined in Theory.Drasil.MultiDefn | |
Definition (MultiDefn e) Source # | |
Defined in Theory.Drasil.MultiDefn | |
Quantity (MultiDefn e) Source # | |
Defined in Theory.Drasil.MultiDefn | |
Express e => Express (MultiDefn e) Source # | The complete Relation of a MultiDefn is defined as the quantity and the related expressions being equal (e.g., `q $= a $= b $= ... $= z`) |
Defined in Theory.Drasil.MultiDefn | |
HasSpace (MultiDefn e) Source # | |
Defined in Theory.Drasil.MultiDefn | |
HasSymbol (MultiDefn e) Source # | |
HasUID (MultiDefn e) Source # | |
Defined in Theory.Drasil.MultiDefn | |
RequiresChecking (MultiDefn Expr) Expr Space Source # | |
Defined in Theory.Drasil.MultiDefn |
data DefiningExpr e Source #
DefiningExpr
are the data that make up a (quantity) definition, namely
the description, the defining (rhs) expression and the context domain(s).
These are meant to be alternate
but equivalent definitions for a single
concept.
Instances
ConceptDomain (DefiningExpr e) Source # | |
Defined in Theory.Drasil.MultiDefn cdom :: DefiningExpr e -> [UID] # | |
Definition (DefiningExpr e) Source # | |
Defined in Theory.Drasil.MultiDefn defn :: Lens' (DefiningExpr e) Sentence # | |
HasUID (DefiningExpr e) Source # | |
Defined in Theory.Drasil.MultiDefn uid :: Lens' (DefiningExpr e) UID # | |
Eq (DefiningExpr e) Source # | |
Defined in Theory.Drasil.MultiDefn (==) :: DefiningExpr e -> DefiningExpr e -> Bool # (/=) :: DefiningExpr e -> DefiningExpr e -> Bool # |
Constructors
mkMultiDefn :: String -> QuantityDict -> Sentence -> NonEmpty (DefiningExpr e) -> MultiDefn e Source #
mkMultiDefnForQuant :: QuantityDict -> Sentence -> NonEmpty (DefiningExpr e) -> MultiDefn e Source #
Smart constructor for MultiDefn
s defining UID
s using that of the QuantityDict
.
mkDefiningExpr :: String -> [UID] -> Sentence -> e -> DefiningExpr e Source #
Smart constructor for DefiningExpr
s.
Functions
multiDefnGenQD :: MultiDefn e -> DefiningExpr e -> QDefinition e Source #
Convert MultiDefn
s into QDefinition
s via a specific DefiningExpr
.
multiDefnGenQDByUID :: MultiDefn e -> UID -> QDefinition e Source #
Convert MultiDefn
s into QDefinition
s via a specific DefiningExpr
(by UID
).