module Drasil.Metadata.Documentation
  (srs, notebook, software, requirement, softwareReq, specification)
  where

import Drasil.Metadata.Domains (softEng)
import Language.Drasil (CI, NP, IdeaDict, nc, cn, cn', commonIdeaWithDict, fterms, compoundPhraseP1)
import Language.Drasil.Chunk.Concept.NamedCombinators (compoundNCPP)

softReqSpec :: NP
softReqSpec :: NP
softReqSpec = (NP -> NP -> NP) -> IdeaDict -> IdeaDict -> NP
forall c d t.
(NamedIdea c, NamedIdea d) =>
(NP -> NP -> t) -> c -> d -> t
fterms NP -> NP -> NP
compoundPhraseP1 IdeaDict
softwareReq IdeaDict
specification

software, specification :: IdeaDict
software :: IdeaDict
software        = String -> NP -> IdeaDict
nc String
"software"       (String -> NP
cn     String
"software"           )
specification :: IdeaDict
specification   = String -> NP -> IdeaDict
nc String
"specification"  (String -> NP
cn'    String
"specification"      )

softwareReq :: IdeaDict
softwareReq :: IdeaDict
softwareReq                  = IdeaDict -> CI -> IdeaDict
forall a b. (NamedIdea a, NamedIdea b) => a -> b -> IdeaDict
compoundNCPP IdeaDict
software CI
requirement

srs, notebook, requirement :: CI
notebook :: CI
notebook    = String -> NP -> String -> [IdeaDict] -> CI
commonIdeaWithDict String
"notebook"    (String -> NP
cn' String
"notebook")                                      String
"NB"      [IdeaDict
softEng]
requirement :: CI
requirement = String -> NP -> String -> [IdeaDict] -> CI
commonIdeaWithDict String
"requirement" (String -> NP
cn' String
"requirement")                                   String
"R"       [IdeaDict
softEng]
srs :: CI
srs         = String -> NP -> String -> [IdeaDict] -> CI
commonIdeaWithDict String
"srs"         NP
softReqSpec                                           String
"SRS"     [IdeaDict
softEng]