{-# 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||]