-- | Defines concepts used in computing, to be used internally.
module Drasil.Metadata.Concepts.Computation (algorithm, defaultOSs, linux,
  macOS, windows) where

import Language.Drasil (cn, cn', ConceptChunk, cncpt''', IdeaDict, idea',
  Sentence(..))
import Drasil.Database (mkUid)

algorithm :: ConceptChunk
algorithm :: ConceptChunk
algorithm = UID -> NP -> Sentence -> ConceptChunk
cncpt''' (String -> UID
mkUid String
"algorithm") (String -> NP
cn' String
"algorithm")
  (String -> Sentence
S String
"a series of steps to be followed in calculations and problem-solving operations")

-- * Operating Systems

linux, macOS, windows :: IdeaDict
linux :: IdeaDict
linux   = UID -> NP -> IdeaDict
idea' (String -> UID
mkUid String
"linux")   (String -> NP
cn String
"Linux")
macOS :: IdeaDict
macOS   = UID -> NP -> IdeaDict
idea' (String -> UID
mkUid String
"macOS")   (String -> NP
cn String
"macOS")
windows :: IdeaDict
windows = UID -> NP -> IdeaDict
idea' (String -> UID
mkUid String
"windows") (String -> NP
cn String
"Windows")

-- | The operating systems that Drasil's generated software targets by default,
-- listed alphabetically.
defaultOSs :: [IdeaDict]
defaultOSs :: [IdeaDict]
defaultOSs = [IdeaDict
linux, IdeaDict
macOS, IdeaDict
windows]