-- | 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 :: [NamedChunk]
prodtcon :: [NamedChunk]
prodtcon = [NamedChunk
sciCompS, NamedChunk
videoGame, NamedChunk
openSource, NamedChunk
compPro]

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

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

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