module Drasil.SWHS.Goals (goals, waterTempGS, pcmTempGS, waterEnergyGS, 
  pcmEnergyGS) where

import Language.Drasil

import Data.Drasil.Concepts.Documentation (goalStmtDom)
import Data.Drasil.Concepts.Physics (time)

import Drasil.SWHS.Unitals (tempW, tempPCM, watE, pcmE)

goals :: [ConceptInstance]
goals :: [ConceptInstance]
goals = [ConceptInstance
waterTempGS, ConceptInstance
pcmTempGS, ConceptInstance
waterEnergyGS, ConceptInstance
pcmEnergyGS]

waterTempGS :: ConceptInstance
waterTempGS :: ConceptInstance
waterTempGS = String -> Sentence -> String -> ConceptChunk -> ConceptInstance
forall c.
Concept c =>
String -> Sentence -> String -> c -> ConceptInstance
cic "waterTempGS" (ConstrConcept -> Sentence
forall varTerm. NamedIdea varTerm => varTerm -> Sentence
goalState ConstrConcept
tempW) "Predict-Water-Temperature"
  ConceptChunk
goalStmtDom

pcmTempGS :: ConceptInstance
pcmTempGS :: ConceptInstance
pcmTempGS = String -> Sentence -> String -> ConceptChunk -> ConceptInstance
forall c.
Concept c =>
String -> Sentence -> String -> c -> ConceptInstance
cic "pcmTempGS" (ConstrConcept -> Sentence
forall varTerm. NamedIdea varTerm => varTerm -> Sentence
goalState ConstrConcept
tempPCM) "Predict-PCM-Temperature" 
  ConceptChunk
goalStmtDom

waterEnergyGS :: ConceptInstance
waterEnergyGS :: ConceptInstance
waterEnergyGS = String -> Sentence -> String -> ConceptChunk -> ConceptInstance
forall c.
Concept c =>
String -> Sentence -> String -> c -> ConceptInstance
cic "waterEnergyGS" (ConstrConcept -> Sentence
forall varTerm. NamedIdea varTerm => varTerm -> Sentence
goalState ConstrConcept
watE) "Predict-Water-Energy"
  ConceptChunk
goalStmtDom

pcmEnergyGS :: ConceptInstance
pcmEnergyGS :: ConceptInstance
pcmEnergyGS = String -> Sentence -> String -> ConceptChunk -> ConceptInstance
forall c.
Concept c =>
String -> Sentence -> String -> c -> ConceptInstance
cic "pcmEnergyGS" (ConstrConcept -> Sentence
forall varTerm. NamedIdea varTerm => varTerm -> Sentence
goalState ConstrConcept
pcmE) "Predict-PCM-Energy" 
  ConceptChunk
goalStmtDom

goalState :: NamedIdea varTerm => varTerm -> Sentence
goalState :: varTerm -> Sentence
goalState varTerm :: varTerm
varTerm = [Sentence] -> Sentence
foldlSent [String -> Sentence
S "Predict the", varTerm -> Sentence
forall n. (HasUID n, NamedIdea n) => n -> Sentence
phrase varTerm
varTerm,
  String -> Sentence
S "over", ConceptChunk -> Sentence
forall n. (HasUID n, NamedIdea n) => n -> Sentence
phrase ConceptChunk
time]