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 String
"waterTempGS" (ConstrConcept -> Sentence
forall varTerm. NamedIdea varTerm => varTerm -> Sentence
goalState ConstrConcept
tempW) String
"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 String
"pcmTempGS" (ConstrConcept -> Sentence
forall varTerm. NamedIdea varTerm => varTerm -> Sentence
goalState ConstrConcept
tempPCM) String
"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 String
"waterEnergyGS" (ConstrConcept -> Sentence
forall varTerm. NamedIdea varTerm => varTerm -> Sentence
goalState ConstrConcept
watE) String
"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 String
"pcmEnergyGS" (ConstrConcept -> Sentence
forall varTerm. NamedIdea varTerm => varTerm -> Sentence
goalState ConstrConcept
pcmE) String
"Predict-PCM-Energy" 
  ConceptChunk
goalStmtDom

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