{-# LANGUAGE TemplateHaskell, TypeFamilies, TypeOperators #-} ----------------------------------------------------------------------------- -- | -- Module : Data.Metrology.Units.PreciousMetals -- Copyright : (C) 2013 Richard Eisenberg -- License : BSD-style (see LICENSE) -- Maintainer : Richard Eisenberg (rae@cs.brynmawr.edu) -- Stability : experimental -- Portability : non-portable -- -- Units used in the measure of precious metals. ----------------------------------------------------------------------------- module Data.Units.PreciousMetals where import Data.Metrology import Data.Metrology.TH import Data.Units.SI import Data.Units.SI.Prefixes import qualified Data.Units.US.Avoirdupois as Avdp import qualified Data.Units.US.Troy as Troy declareDerivedUnit "Carat" [t| Milli :@ Gram |] 200 (Just "carat") declareDerivedUnit "Point" [t| Carat |] 0.01 (Just "point") declareDerivedUnit "AssayTon" [t| (Milli :@ Gram) :* (Avdp.Ton :/ Troy.Ounce) |] 1 (Just "AT")