-- | Theory related Drasil concepts, used across Drasil.
module Data.Drasil.TheoryConcepts where

import Language.Drasil (cn', CI, commonIdeaWithDict)
import Data.Drasil.Domains (softEng)

-- | These are internal-to-Drasil common ideas, and need to be defined at the 
-- same time as theories.
dataDefn, genDefn, inModel, thModel :: CI
-- | Data definition.
dataDefn :: CI
dataDefn = String -> NP -> String -> [IdeaDict] -> CI
commonIdeaWithDict String
"dataDefn" (String -> NP
cn' String
"data definition")    String
"DD"  [IdeaDict
softEng]
-- | General definition.
genDefn :: CI
genDefn  = String -> NP -> String -> [IdeaDict] -> CI
commonIdeaWithDict String
"genDefn"  (String -> NP
cn' String
"general definition") String
"GD"  [IdeaDict
softEng]
-- | Instance model.
inModel :: CI
inModel  = String -> NP -> String -> [IdeaDict] -> CI
commonIdeaWithDict String
"inModel"  (String -> NP
cn' String
"instance model")     String
"IM"  [IdeaDict
softEng]
-- | Theoretical model.
thModel :: CI
thModel  = String -> NP -> String -> [IdeaDict] -> CI
commonIdeaWithDict String
"thModel"  (String -> NP
cn' String
"theoretical model")  String
"TM"  [IdeaDict
softEng]