-- | Defines common software products.
module Data.Drasil.Software.Products where

import Language.Drasil
import Language.Drasil.Chunk.Concept.NamedCombinators

import Data.Drasil.Concepts.Documentation (game, video, open, source)
import Data.Drasil.Concepts.Computation (computer)
import Data.Drasil.Concepts.Software (program)
import Data.Drasil.Domains (progLanguage)


prodtcon :: [IdeaDict]
prodtcon :: [IdeaDict]
prodtcon = [IdeaDict
sciCompS, IdeaDict
videoGame, IdeaDict
openSource, IdeaDict
compPro]

matlab :: CI
matlab :: CI
matlab     = String -> NP -> String -> [IdeaDict] -> CI
commonIdeaWithDict String
"matlab" (String -> NP
pn' String
"MATLAB programming language")       String
"MATLAB"  [IdeaDict
progLanguage]

sciCompS :: IdeaDict
sciCompS :: IdeaDict
sciCompS   = String -> NP -> IdeaDict
nc String
"sciCompS"       (String -> NP
cn' String
"scientific computing software")

videoGame, openSource, compPro :: IdeaDict
videoGame :: IdeaDict
videoGame   = IdeaDict -> IdeaDict -> IdeaDict
forall a b. (NamedIdea a, NamedIdea b) => a -> b -> IdeaDict
compoundNC IdeaDict
video IdeaDict
game
openSource :: IdeaDict
openSource  = IdeaDict -> IdeaDict -> IdeaDict
forall a b. (NamedIdea a, NamedIdea b) => a -> b -> IdeaDict
compoundNC IdeaDict
open IdeaDict
source
compPro :: IdeaDict
compPro     = IdeaDict -> ConceptChunk -> IdeaDict
forall a b. (NamedIdea a, NamedIdea b) => a -> b -> IdeaDict
compoundNC IdeaDict
computer ConceptChunk
program