{-# LANGUAGE PatternSynonyms, TemplateHaskell, TypeOperators,
TypeFamilies #-}
module Data.Units.CGS (
Centi(..), centi, Meter(..), pattern Metre, Gram(..), Second(..),
module Data.Units.CGS
) where
import Data.Units.SI
import Data.Units.SI.Prefixes
import Data.Metrology.Poly
import Data.Metrology.TH
type Centimeter = Centi :@ Meter
pattern Centimeter :: Centimeter
pattern Centimeter = Centi :@ Meter
type Centimetre = Centimeter
pattern Centimetre :: Centimetre
pattern Centimetre = Centimeter
declareDerivedUnit "Gal"
[t| Centimeter :/ Second :^ Two |] 1 (Just "Gal")
declareDerivedUnit "Dyne"
[t| Gram :* Centimeter :/ Second :^ Two |] 1 (Just "dyn")
declareDerivedUnit "Erg"
[t| Gram :* Centimeter :^ Two :/ Second :^ Two |] 1 (Just "erg")
declareDerivedUnit "Barye"
[t| Gram :/ (Centimeter :* Second :^ Two) |] 1 (Just "Ba")
declareDerivedUnit "Poise"
[t| Gram :/ (Centimeter :* Second) |] 1 (Just "P")
declareDerivedUnit "Stokes"
[t| Centimeter :^ Two :/ Second |] 1 (Just "St")
declareDerivedUnit "Kayser"
[t| Centimeter :^ MOne |] 1 Nothing
declareDerivedUnit "Maxwell" [t| Nano :@ Weber |] 10 (Just "Mx")
declareDerivedUnit "Gauss" [t| Milli :@ Tesla |] 0.1 (Just "G")