-- | Assigns symbols and units (quantities) to common physical properties.
module Data.Drasil.Quantities.PhysicalProperties where

import Language.Drasil
import Language.Drasil.ShortHands (lM, cL, cV, lGamma, lRho)

import Data.Drasil.Concepts.PhysicalProperties as CPP (density, specWeight, len,
  mass, vol)
import Data.Drasil.SI_Units (kilogram, metre, m_3, specificWeight)
import Data.Drasil.Units.PhysicalProperties (densityU)

density, specWeight, mass, len, vol :: UnitalChunk
density :: UnitalChunk
density    = ConceptChunk -> Symbol -> UnitDefn -> UnitalChunk
forall c u.
(Concept c, IsUnit u) =>
c -> Symbol -> u -> UnitalChunk
uc ConceptChunk
CPP.density    Symbol
lRho   UnitDefn
densityU
specWeight :: UnitalChunk
specWeight = ConceptChunk -> Symbol -> UnitDefn -> UnitalChunk
forall c u.
(Concept c, IsUnit u) =>
c -> Symbol -> u -> UnitalChunk
uc ConceptChunk
CPP.specWeight Symbol
lGamma UnitDefn
specificWeight
mass :: UnitalChunk
mass       = ConceptChunk -> Symbol -> UnitDefn -> UnitalChunk
forall c u.
(Concept c, IsUnit u) =>
c -> Symbol -> u -> UnitalChunk
uc ConceptChunk
CPP.mass       Symbol
lM     UnitDefn
kilogram
len :: UnitalChunk
len        = ConceptChunk -> Symbol -> UnitDefn -> UnitalChunk
forall c u.
(Concept c, IsUnit u) =>
c -> Symbol -> u -> UnitalChunk
uc ConceptChunk
CPP.len        Symbol
cL     UnitDefn
metre
vol :: UnitalChunk
vol        = ConceptChunk -> Symbol -> UnitDefn -> UnitalChunk
forall c u.
(Concept c, IsUnit u) =>
c -> Symbol -> u -> UnitalChunk
uc ConceptChunk
CPP.vol        Symbol
cV     UnitDefn
m_3