Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
- Document Types
- Reference Material Section
- Introduction Section
- Stakeholders Section
- General System Description Section
- Specific System Description Section
- Requirements Section
- Likely Changes Section
- Unlikely Changes Section
- Traceability Section
- Off-The-Shelf Solutions Section
- Values of Auxiliary Constants Section
- Appendix Section
- Multiplate Definition and Type
Defines core types for use with the Drasil document language (Drasil.DocumentLanguage).
Synopsis
- type System = Sentence
- type DocKind = Sentence
- type DocDesc = [DocSection]
- data DocSection
- data RefSec = RefProg Contents [RefTab]
- data RefTab where
- data TSIntro
- data TConvention
- data Emphasis
- data Literature
- type Topic = IdeaDict
- data TUIntro
- data LFunc where
- Term :: LFunc
- Defn :: LFunc
- TermExcept :: [DefinedQuantityDict] -> LFunc
- DefnExcept :: [DefinedQuantityDict] -> LFunc
- TAD :: LFunc
- data IntroSec = IntroProg Sentence Sentence [IntroSub]
- data IntroSub where
- newtype StkhldrSec = StkhldrProg [StkhldrSub]
- data StkhldrSub where
- Client :: CI -> Sentence -> StkhldrSub
- Cstmr :: CI -> StkhldrSub
- newtype GSDSec = GSDProg [GSDSub]
- data GSDSub where
- newtype SSDSec = SSDProg [SSDSub]
- data SSDSub where
- SSDProblem :: ProblemDescription -> SSDSub
- SSDSolChSpec :: SolChSpec -> SSDSub
- data ProblemDescription where
- PDProg :: Sentence -> [Section] -> [PDSub] -> ProblemDescription
- data PDSub where
- TermsAndDefs :: Concept c => Maybe Sentence -> [c] -> PDSub
- PhySysDesc :: Idea a => a -> [Sentence] -> LabelledContent -> [Contents] -> PDSub
- Goals :: [Sentence] -> [ConceptInstance] -> PDSub
- data SolChSpec where
- data SCSSub where
- Assumptions :: [ConceptInstance] -> SCSSub
- TMs :: [Sentence] -> Fields -> [TheoryModel] -> SCSSub
- GDs :: [Sentence] -> Fields -> [GenDefn] -> DerivationDisplay -> SCSSub
- DDs :: [Sentence] -> Fields -> [DataDefinition] -> DerivationDisplay -> SCSSub
- IMs :: [Sentence] -> Fields -> [InstanceModel] -> DerivationDisplay -> SCSSub
- Constraints :: (HasUncertainty c, Quantity c, Constrained c, HasReasVal c, MayHaveUnit c) => Sentence -> [c] -> SCSSub
- CorrSolnPpties :: (Quantity c, Constrained c) => [c] -> [Contents] -> SCSSub
- data DerivationDisplay
- newtype ReqrmntSec = ReqsProg [ReqsSub]
- data ReqsSub where
- FReqsSub' :: [ConceptInstance] -> [LabelledContent] -> ReqsSub
- FReqsSub :: [ConceptInstance] -> [LabelledContent] -> ReqsSub
- NonFReqsSub :: [ConceptInstance] -> ReqsSub
- newtype LCsSec = LCsProg [ConceptInstance]
- newtype UCsSec = UCsProg [ConceptInstance]
- newtype TraceabilitySec = TraceabilityProg [TraceConfig]
- data TraceConfig = TraceConfig UID [Sentence] Sentence [TraceViewCat] [TraceViewCat]
- getTraceConfigUID :: TraceConfig -> UID
- newtype OffShelfSolnsSec = OffShelfSolnsProg [Contents]
- data AuxConstntSec = AuxConsProg CI [ConstQDef]
- newtype AppndxSec = AppndxProg [Contents]
- data DLPlate f = DLPlate {
- docSec :: DocSection -> f DocSection
- refSec :: RefSec -> f RefSec
- introSec :: IntroSec -> f IntroSec
- introSub :: IntroSub -> f IntroSub
- stkSec :: StkhldrSec -> f StkhldrSec
- stkSub :: StkhldrSub -> f StkhldrSub
- gsdSec :: GSDSec -> f GSDSec
- gsdSub :: GSDSub -> f GSDSub
- ssdSec :: SSDSec -> f SSDSec
- ssdSub :: SSDSub -> f SSDSub
- pdSec :: ProblemDescription -> f ProblemDescription
- pdSub :: PDSub -> f PDSub
- scsSub :: SCSSub -> f SCSSub
- reqSec :: ReqrmntSec -> f ReqrmntSec
- reqSub :: ReqsSub -> f ReqsSub
- lcsSec :: LCsSec -> f LCsSec
- ucsSec :: UCsSec -> f UCsSec
- traceSec :: TraceabilitySec -> f TraceabilitySec
- offShelfSec :: OffShelfSolnsSec -> f OffShelfSolnsSec
- auxConsSec :: AuxConstntSec -> f AuxConstntSec
- appendSec :: AppndxSec -> f AppndxSec
Documentation
Document Types
type DocDesc = [DocSection] Source #
A document description is made up of document sections.
data DocSection Source #
Document sections are either Reference, Introduction, or Specific System Description sections (for now!).
Reference Material Section
Reference section. Contents are top level followed by a list of subsections.
Reference subsections (tables) made out of units or symbols (can be customized).
TUnits :: RefTab | Default table of units. |
TUnits' :: [TUIntro] -> ([UnitDefn] -> LabelledContent) -> RefTab | Customized introduction. |
TSymb :: [TSIntro] -> RefTab | Adds an introduction for a table of symbols. |
TSymb' :: LFunc -> [TSIntro] -> RefTab | Allows Lens functions in addition to an introduction for a table of symbols. |
TAandA :: RefTab | Default. |
For creating a table of symbols introduction
TypogConvention [TConvention] | Typographic conventions used. |
SymbOrder | Symbol ordering (defaults to alphabetical). |
SymbConvention [Literature] | Symbol conventions match specified literature. |
TSPurpose | Purpose of the Table of Symbols. |
VectorUnits | Definition of vector components. |
data TConvention Source #
Possible typographic conventions.
How to handle emphasis of words.
data Literature Source #
Types of literature.
For creating the table of units introduction.
Lens (lookup) functions (currently for TSymb).
Term :: LFunc | |
Defn :: LFunc | |
TermExcept :: [DefinedQuantityDict] -> LFunc | |
DefnExcept :: [DefinedQuantityDict] -> LFunc | |
TAD | |
|
Introduction Section
Introduction section. Contents are top level followed by a list of subsections.
Introduction subsections.
Stakeholders Section
newtype StkhldrSec Source #
Stakeholders section (wraps stakeholders subsections StkhldrSub
).
data StkhldrSub where Source #
Stakeholders subsections.
Client :: CI -> Sentence -> StkhldrSub | May have a client. |
Cstmr :: CI -> StkhldrSub | May have a customer. |
General System Description Section
General System Description section (wraps GSDSub
subsections).
General System Description subsections.
Specific System Description Section
Specific System Description section. Contains a list of subsections (SSDSub
).
Specific System Description subsections.
SSDProblem :: ProblemDescription -> SSDSub | System description problems. |
SSDSolChSpec :: SolChSpec -> SSDSub | Solution characteristics specification. |
data ProblemDescription where Source #
Problem Description section. Contains an intro or title,
Section
s, and problem description subsections (PDSub
).
PDProg :: Sentence -> [Section] -> [PDSub] -> ProblemDescription |
Problem Description subsections.
TermsAndDefs :: Concept c => Maybe Sentence -> [c] -> PDSub | Terms and definitions. |
PhySysDesc :: Idea a => a -> [Sentence] -> LabelledContent -> [Contents] -> PDSub | Physical system description. |
Goals :: [Sentence] -> [ConceptInstance] -> PDSub | Goals. |
Solution Characteristics Specification section. Contains a list of subsections (SCSSub
).
Solution Characteristics Specification subsections.
Assumptions :: [ConceptInstance] -> SCSSub | Assumptions. |
TMs :: [Sentence] -> Fields -> [TheoryModel] -> SCSSub | Theory Models. |
GDs :: [Sentence] -> Fields -> [GenDefn] -> DerivationDisplay -> SCSSub | General Definitions. |
DDs :: [Sentence] -> Fields -> [DataDefinition] -> DerivationDisplay -> SCSSub | Data Definitions. |
IMs :: [Sentence] -> Fields -> [InstanceModel] -> DerivationDisplay -> SCSSub | Instance Models. |
Constraints :: (HasUncertainty c, Quantity c, Constrained c, HasReasVal c, MayHaveUnit c) => Sentence -> [c] -> SCSSub | Constraints. |
CorrSolnPpties :: (Quantity c, Constrained c) => [c] -> [Contents] -> SCSSub | Properties of a correct solution. |
data DerivationDisplay Source #
Choose whether to show or hide the derivation of an expression.
Requirements Section
newtype ReqrmntSec Source #
Requirements section. Contains a list of subsections (ReqsSub
).
Requirements subsections.
FReqsSub' :: [ConceptInstance] -> [LabelledContent] -> ReqsSub | Functional requirements. LabelledContent needed for tables. |
FReqsSub :: [ConceptInstance] -> [LabelledContent] -> ReqsSub | Functional requirements. LabelledContent needed for tables. |
NonFReqsSub :: [ConceptInstance] -> ReqsSub | Non-functional requirements. |
Likely Changes Section
Unlikely Changes Section
Traceability Section
newtype TraceabilitySec Source #
Traceability Matices and Graphs section. Contains configurations (TraceConfig
).
data TraceConfig Source #
Traceability Matices and Graphs configurations.
getTraceConfigUID :: TraceConfig -> UID Source #
Off-The-Shelf Solutions Section
Values of Auxiliary Constants Section
Appendix Section
Multiplate Definition and Type
Holds all of the different kinds of sections. Defines as a plate with an applicative functor.
DLPlate | |
|
Instances
Multiplate DLPlate Source # | Holds boilerplate code to make getting sections easier. |
Defined in Drasil.DocumentLanguage.Core multiplate :: forall (f :: Type -> Type). Applicative f => DLPlate f -> DLPlate f mkPlate :: (forall a. Projector DLPlate a -> a -> f a) -> DLPlate f |