orbits-0.4: src/Physics/Orbit/Metrology.hs
{-# language QuasiQuotes #-}
module Physics.Orbit.Metrology where
import Data.Metrology
import Data.Metrology.TH
import Data.Units.SI.Parser
declareDimension "PlaneAngleHyperbolic"
declareCanonicalUnit "RadianHyperbolic" [t| PlaneAngleHyperbolic |] (Just "rdh")
type instance DefaultUnitOfDim PlaneAngleHyperbolic = RadianHyperbolic
type Quantity u = MkQu_ULN u 'DefaultLCSU
-- | A measure in seconds.
type Time = Quantity [si|s|]
-- | A measure in meters.
type Distance = Quantity [si| m |]
-- | A measure in meters per second.
type Speed = Quantity [si| m s^-1 |]
-- | A measure in kilograms.
type Mass = Quantity [si| kg |]
-- | A measure in radians.
type Angle = Quantity [si| rad |]
-- | A measure in radians (hyperbolic)
type AngleH = Quantity RadianHyperbolic
-- | A unitless measure.
type Unitless = Quantity [si||]