{-# LANGUAGE TypeFamilies, DataKinds #-} module Tests.Compile.Lcsu where import Data.Metrology.Poly hiding (LCSU) data Length = Length data Time = Time data Meter = Meter data Second = Second data Centi = Centi instance Dimension Length instance Dimension Time instance Unit Meter where type BaseUnit Meter = Canonical type DimOfUnit Meter = Length instance Unit Second where type BaseUnit Second = Canonical type DimOfUnit Second = Time instance Unit Centi where type BaseUnit Centi = Meter conversionRatio _ = 0.01 data Foot = Foot instance Unit Foot where type BaseUnit Foot = Meter conversionRatio _ = 0.3048 type LCSU = MkLCSU '[(Length, Meter), (Time, Second)] inMeters :: Qu '[F Length One] LCSU Double inMeters = quOf 3 Meter