{-# LANGUAGE TemplateHaskell, TypeFamilies, TypeOperators #-} ----------------------------------------------------------------------------- -- | -- Module : Data.Units.US.DryVolume -- Copyright : (C) 2013 Richard Eisenberg -- License : BSD-style (see LICENSE) -- Maintainer : Richard Eisenberg (rae@cs.brynmawr.edu) -- Stability : experimental -- Portability : non-portable -- -- This module defines dry volume measures as used in the USA. -- -- Included are all units mentioned here: -- -- Where possible, conversion rates have been independently verified -- at a US government website. However, Wikipedia's base is /much/ -- better organized than any government resource immediately available. -- The US government references used are as follows: -- -- ----------------------------------------------------------------------------- module Data.Units.US.DryVolume where import Data.Metrology import Data.Metrology.TH import Data.Units.US.Misc import Language.Haskell.TH declareDerivedUnit "Gallon" [t| Inch :^ Three |] 268.8025 (Just "gal") declareDerivedUnit "Quart" [t| Gallon |] (1/4) (Just "qt") declareDerivedUnit "Pint" [t| Quart |] (1/2) (Just "pt") declareDerivedUnit "Peck" [t| Gallon |] 2 (Just "pk") declareDerivedUnit "Bushel" [t| Peck |] 4 (Just "bu") declareDerivedUnit "Barrel" [t| Inch :^ Three |] 7056 (Just "bbl") declareDerivedUnit "Cord" [t| Foot :^ Three |] 128 (Just "cd") declareDerivedUnit "BoardFoot" [t| Foot :^ Three |] (1/12) (Just "FBM") declareDerivedUnit "RegisterTon" [t| Foot :^ Three |] 100 (Just "RT") declareDerivedUnit "CranberryBarrel" [t| Inch :^ Three |] 5826 (Just "bbl") -- | Includes all measures in this file, except 'CranberryBarrel'. dryVolumeMeasures :: [Name] dryVolumeMeasures = [ ''Pint, ''Quart, ''Gallon, ''Peck, ''Bushel , ''Barrel, ''Cord, ''BoardFoot, ''RegisterTon ]