drasil-docLang-0.1.26.0: A framework for code and document generation for scientific software - Document Language SubPackage
Safe HaskellSafe-Inferred
LanguageHaskell2010

Drasil.DocumentLanguage.Core

Description

Defines core types for use with the Drasil document language (Drasil.DocumentLanguage).

Synopsis

Documentation

type System = Sentence Source #

Type synonym for clarity.

type DocKind = Sentence Source #

Type synonym for clarity.

Document Types

type DocDesc = [DocSection] Source #

A document description is made up of document sections.

Reference Material Section

data RefSec Source #

Reference section. Contents are top level followed by a list of subsections.

Constructors

RefProg Contents [RefTab] 

data RefTab where Source #

Reference subsections (tables) made out of units or symbols (can be customized).

Constructors

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.

data TSIntro Source #

For creating a table of symbols introduction

Constructors

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.

Constructors

Vector Emphasis

How vectors are emphasized.

Verb Sentence

Verbatim for specialized conventions.

data Emphasis Source #

How to handle emphasis of words.

Constructors

Bold 
Italics 

Instances

Instances details
Show Emphasis Source # 
Instance details

Defined in Drasil.DocumentLanguage.Core

data Literature Source #

Types of literature.

Constructors

Lit Topic

Literature (with a Topic).

Doc Topic

Existing documentation for (singular topic).

Doc' Topic

Existing documentation for (plural version of topic).

Manual Topic

Manual.

type Topic = IdeaDict Source #

Type synonym for clarity.

data TUIntro Source #

For creating the table of units introduction.

Constructors

System

System of units (defaults to SI).

Derived

Sentence about derived units being used alongside SI.

TUPurpose

Purpose of the table of units.

data LFunc where Source #

Lens (lookup) functions (currently for TSymb).

Constructors

Term :: LFunc 
Defn :: LFunc 
TermExcept :: [DefinedQuantityDict] -> LFunc 
DefnExcept :: [DefinedQuantityDict] -> LFunc 
TAD 

Fields

  • :: LFunc

    Term and Definition.

Introduction Section

data IntroSec Source #

Introduction section. Contents are top level followed by a list of subsections.

Constructors

IntroProg Sentence Sentence [IntroSub]

Temporary, will be modified once we've figured out more about the section.

data IntroSub where Source #

Introduction subsections.

Constructors

IPurpose :: [Sentence] -> IntroSub

Describes purpose of the system.

IScope :: Sentence -> IntroSub

Describes scope of the system.

IChar :: [Sentence] -> [Sentence] -> [Sentence] -> IntroSub

Describes characteristics of the system.

IOrgSec :: CI -> Section -> Sentence -> IntroSub

Organises the section.

Stakeholders Section

newtype StkhldrSec Source #

Stakeholders section (wraps stakeholders subsections StkhldrSub).

Constructors

StkhldrProg [StkhldrSub] 

data StkhldrSub where Source #

Stakeholders subsections.

Constructors

Client :: CI -> Sentence -> StkhldrSub

May have a client.

Cstmr :: CI -> StkhldrSub

May have a customer.

General System Description Section

newtype GSDSec Source #

General System Description section (wraps GSDSub subsections).

Constructors

GSDProg [GSDSub] 

data GSDSub where Source #

General System Description subsections.

Constructors

SysCntxt :: [Contents] -> GSDSub

System context.

UsrChars :: [Contents] -> GSDSub

User characteristics.

SystCons :: [Contents] -> [Section] -> GSDSub

System constraints.

Specific System Description Section

newtype SSDSec Source #

Specific System Description section. Contains a list of subsections (SSDSub).

Constructors

SSDProg [SSDSub] 

data SSDSub where Source #

Specific System Description subsections.

Constructors

SSDProblem :: ProblemDescription -> SSDSub

System description problems.

SSDSolChSpec :: SolChSpec -> SSDSub

Solution characteristics specification.

data ProblemDescription where Source #

Problem Description section. Contains an intro or title, Sections, and problem description subsections (PDSub).

Constructors

PDProg :: Sentence -> [Section] -> [PDSub] -> ProblemDescription 

data PDSub where Source #

Problem Description subsections.

Constructors

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.

data SolChSpec where Source #

Solution Characteristics Specification section. Contains a list of subsections (SCSSub).

Constructors

SCSProg :: [SCSSub] -> SolChSpec 

data SCSSub where Source #

Solution Characteristics Specification subsections.

Constructors

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).

Constructors

ReqsProg [ReqsSub] 

data ReqsSub where Source #

Requirements subsections.

Constructors

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

newtype LCsSec Source #

Likely Changes section.

Constructors

LCsProg [ConceptInstance] 

Unlikely Changes Section

newtype UCsSec Source #

Unlikely Changes section.

Constructors

UCsProg [ConceptInstance] 

Traceability Section

newtype TraceabilitySec Source #

Traceability Matices and Graphs section. Contains configurations (TraceConfig).

data TraceConfig Source #

Traceability Matices and Graphs configurations.

Off-The-Shelf Solutions Section

newtype OffShelfSolnsSec Source #

Off-The-Shelf Solutions section.

Constructors

OffShelfSolnsProg [Contents] 

Values of Auxiliary Constants Section

data AuxConstntSec Source #

Values of Auxiliary Constants section.

Constructors

AuxConsProg CI [ConstQDef] 

Appendix Section

newtype AppndxSec Source #

Appendix section.

Constructors

AppndxProg [Contents] 

Multiplate Definition and Type

data DLPlate f Source #

Holds all of the different kinds of sections. Defines as a plate with an applicative functor.

Instances

Instances details
Multiplate DLPlate Source #

Holds boilerplate code to make getting sections easier.

Instance details

Defined in Drasil.DocumentLanguage.Core

Methods

multiplate :: forall (f :: Type -> Type). Applicative f => DLPlate f -> DLPlate f

mkPlate :: (forall a. Projector DLPlate a -> a -> f a) -> DLPlate f