| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Theory.Drasil.MultiDefn
Contents
Description
Defines types and functions for creating mult-definitions.
Synopsis
- data MultiDefn e
- data DefiningExpr e
- mkMultiDefn :: String -> DefinedQuantityDict -> Sentence -> NonEmpty (DefiningExpr e) -> MultiDefn e
- mkMultiDefnForQuant :: DefinedQuantityDict -> 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
MultiDefns are QDefinition factories, used for showing one or more ways
we can define a QDefinition.
Instances
| HasUID (MultiDefn e) Source # | |
Defined in Theory.Drasil.MultiDefn | |
| 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 # | |
| 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
| HasUID (DefiningExpr e) Source # | |
Defined in Theory.Drasil.MultiDefn Methods uid :: Getter (DefiningExpr e) UID # | |
| ConceptDomain (DefiningExpr e) Source # | |
Defined in Theory.Drasil.MultiDefn Methods cdom :: DefiningExpr e -> [UID] # | |
| Definition (DefiningExpr e) Source # | |
Defined in Theory.Drasil.MultiDefn Methods defn :: Lens' (DefiningExpr e) Sentence # | |
| Eq (DefiningExpr e) Source # | |
Defined in Theory.Drasil.MultiDefn Methods (==) :: DefiningExpr e -> DefiningExpr e -> Bool # (/=) :: DefiningExpr e -> DefiningExpr e -> Bool # | |
Constructors
mkMultiDefn :: String -> DefinedQuantityDict -> Sentence -> NonEmpty (DefiningExpr e) -> MultiDefn e Source #
mkMultiDefnForQuant :: DefinedQuantityDict -> Sentence -> NonEmpty (DefiningExpr e) -> MultiDefn e Source #
Smart constructor for MultiDefns defining UIDs using that of the DefinedQuantityDict.
mkDefiningExpr :: String -> [UID] -> Sentence -> e -> DefiningExpr e Source #
Smart constructor for DefiningExprs.
Functions
multiDefnGenQD :: MultiDefn e -> DefiningExpr e -> QDefinition e Source #
Convert MultiDefns into QDefinitions via a specific DefiningExpr.
multiDefnGenQDByUID :: MultiDefn e -> UID -> QDefinition e Source #
Convert MultiDefns into QDefinitions via a specific DefiningExpr (by UID).