{-# LANGUAGE TemplateHaskell, TypeFamilies, TypeOperators #-} ----------------------------------------------------------------------------- -- | -- Module : Data.Units.Imperial.Misc -- Copyright : (C) 2013 Richard Eisenberg -- License : BSD-style (see LICENSE) -- Maintainer : Richard Eisenberg (rae@cs.brynmawr.edu) -- Stability : experimental -- Portability : non-portable -- -- Miscellaneous units not easily put in another module. -- -- Where possible, reference have been made to UK legislation. However, -- Wikipedia's page is /much/ better organized than any government -- resource immediately available. -- -- The UK legislation used as references are as follows: -- -- -- ----------------------------------------------------------------------------- module Data.Units.Imperial.Misc where import Data.Metrology import Data.Metrology.TH import Data.Units.SI import Data.Units.Imperial.Nautical import Language.Haskell.TH declareDerivedUnit "Knot" [t| NauticalMile :/ Hour |] 1 (Just "kn") declareDerivedUnit "InchOfWater" [t| Pascal |] 249.08891 (Just "inAq") declareDerivedUnit "PoundForce" [t| Newton |] 4.4482216152605 (Just "lbf") declareDerivedUnit "TonForce" [t| PoundForce |] 2240 (Just "tf") declareDerivedUnit "Horsepower" [t| Watt |] 745.69987158227022 (Just "hp") declareDerivedUnit "FootPoundForce" [t| Joule |] 1.3558179483314004 (Just "ft⋅lbf") declareDerivedUnit "BritishThermalUnit" [t| Joule |] 1055.05585257348 (Just "Btu") declareDerivedUnit "Therm" [t| BritishThermalUnit |] 100000 (Just "thm") declareDerivedUnit "FootCandle" [t| Lux |] 10.763910416709 (Just "fc") declareDerivedUnit "Fahrenheit" [t| Kelvin |] (5/9) (Just "°F") -- | Speed units: 'Knot' speeds :: [Name] speeds = [ ''Knot ] -- | Temperature units: 'Fahrenheit' temperatures :: [Name] temperatures = [ ''Fahrenheit ] -- | Illuminance units: 'FootCandle' illuminances :: [Name] illuminances = [ ''FootCandle ] -- | Force units: 'PoundForce' and 'TonForce' forces :: [Name] forces = [ ''PoundForce, ''TonForce ] -- | Energy units: 'FootPoundForce', 'BritishThermalUnit' and 'Therm' energies :: [Name] energies = [ ''FootPoundForce, ''BritishThermalUnit, ''Therm ] -- | Power units: 'Horsepower' powers :: [Name] powers = [ ''Horsepower ]