packages feed

units-defs 1.0.1 → 1.1

raw patch · 8 files changed

+88/−21 lines, 8 filesdep +template-haskelldep ~units

Dependencies added: template-haskell

Dependency ranges changed: units

Files

CHANGES.md view
@@ -1,3 +1,11 @@+Version 1.1+-------------++* Added `si` parser.+* Moved `DefaultUnitOfDim` instances from `SI.MonoTypes` to `SI.Mono`. This allows+  client code to import the monomorphic types without getting these instances. But,+  it may mean that your imports have to change.+ Version 1.0.1 ------------- 
Data/Metrology/SI/Mono.hs view
@@ -1,3 +1,5 @@+{-# LANGUAGE TypeOperators, TypeFamilies #-}+ ----------------------------------------------------------------------------- -- | -- Module      :  Data.Metrology.SI.Mono@@ -15,11 +17,21 @@ module Data.Metrology.SI.Mono (   module Data.Metrology.SI.MonoTypes,   module Data.Metrology.SI.Units,-  module Data.Metrology.SI.Prefixes+  module Data.Metrology.SI.Prefixes,+  module Data.Metrology.SI.Parser   ) where  import Data.Metrology.SI.MonoTypes import Data.Metrology.SI.Units import Data.Metrology.SI.Prefixes-+import qualified Data.Metrology.SI.Dims as D+import Data.Metrology+import Data.Metrology.SI.Parser +type instance DefaultUnitOfDim D.Length            = Meter+type instance DefaultUnitOfDim D.Mass              = Kilo :@ Gram+type instance DefaultUnitOfDim D.Time              = Second+type instance DefaultUnitOfDim D.Current           = Ampere+type instance DefaultUnitOfDim D.Temperature       = Kelvin+type instance DefaultUnitOfDim D.AmountOfSubstance = Mole+type instance DefaultUnitOfDim D.LuminousIntensity = Lumen
Data/Metrology/SI/MonoTypes.hs view
@@ -16,17 +16,7 @@ module Data.Metrology.SI.MonoTypes where  import Data.Metrology-import Data.Metrology.SI.Units-import Data.Metrology.SI.Prefixes ( Kilo ) import qualified Data.Metrology.SI.Dims as D--type instance DefaultUnitOfDim D.Length            = Meter-type instance DefaultUnitOfDim D.Mass              = Kilo :@ Gram-type instance DefaultUnitOfDim D.Time              = Second-type instance DefaultUnitOfDim D.Current           = Ampere-type instance DefaultUnitOfDim D.Temperature       = Kelvin-type instance DefaultUnitOfDim D.AmountOfSubstance = Mole-type instance DefaultUnitOfDim D.LuminousIntensity = Lumen  type Length              = MkQu_D D.Length type Mass                = MkQu_D D.Mass
+ Data/Metrology/SI/Parser.hs view
@@ -0,0 +1,29 @@+{-# LANGUAGE TemplateHaskell #-}++-----------------------------------------------------------------------------+-- |+-- Module      :  Data.Metrology.SI.Parser+-- Copyright   :  (C) 2013 Richard Eisenberg+-- License     :  BSD-style (see LICENSE)+-- Maintainer  :  Richard Eisenberg (eir@cis.upenn.edu)+-- Stability   :  experimental+-- Portability :  non-portable+--+-- Defines a quasi-quoting parser for unit expressions. Writing, say,+-- @[si| m/s^2 |]@ produces @(Meter :/ (Second :^ sTwo))@. A larger+-- example is+--+-- > ke :: Energy+-- > ke = 5 % [si| N km |]  -- 5 Newton-kilometers+--+-- See `Data.Metrology.Parser` for more information about the syntax+-- of these unit expressions.+-----------------------------------------------------------------------------++module Data.Metrology.SI.Parser where++import Data.Metrology.Parser+import Data.Metrology.SI.Prefixes+import Data.Metrology.SI.Units++makeQuasiQuoter "si" siPrefixes siUnits
Data/Metrology/SI/Poly.hs view
@@ -18,7 +18,8 @@   SI,   module Data.Metrology.SI.PolyTypes,   module Data.Metrology.SI.Prefixes,-  module Data.Metrology.SI.Units+  module Data.Metrology.SI.Units,+  module Data.Metrology.SI.Parser   ) where  import Data.Metrology.SI.PolyTypes@@ -26,6 +27,7 @@ import Data.Metrology.SI.Units import qualified Data.Metrology.SI.Dims as D import Data.Metrology+import Data.Metrology.SI.Parser  type SI = MkLCSU '[ (D.Length, Meter)                   , (D.Mass, Kilo :@ Gram)
Data/Metrology/SI/Prefixes.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE TypeOperators #-}+{-# LANGUAGE TypeOperators, TemplateHaskell #-}  ----------------------------------------------------------------------------- -- |@@ -14,6 +14,7 @@  module Data.Metrology.SI.Prefixes where +import Language.Haskell.TH ( Name ) import Data.Metrology  -- | 10^1@@ -215,3 +216,12 @@  yocto :: unit -> Yocto :@ unit yocto = (Yocto :@)++-- | A list of the names of all prefix types. Useful with+-- 'Data.Metrology.Parser.makeQuasiQuoter'.+siPrefixes :: [Name]+siPrefixes =+  [ ''Deca, ''Hecto, ''Kilo, ''Mega, ''Giga, ''Tera, ''Peta, ''Exa+  , ''Zetta, ''Yotta, ''Deci, ''Centi, ''Milli, ''Micro, ''Nano+  , ''Pico, ''Femto, ''Atto, ''Zepto, ''Yocto+  ]
Data/Metrology/SI/Units.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE TypeFamilies, TypeOperators, PatternSynonyms #-}+{-# LANGUAGE TypeFamilies, TypeOperators, PatternSynonyms, TemplateHaskell #-}  ----------------------------------------------------------------------------- -- |@@ -31,6 +31,8 @@ import Data.Metrology.SI.Dims import Data.Metrology.SI.Prefixes ( Kilo, Centi ) +import Language.Haskell.TH ( Name )+ data Meter = Meter instance Unit Meter where   type BaseUnit Meter = Canonical@@ -250,3 +252,15 @@  type Tonne = Ton pattern Tonne = Ton++-- | A list of the names of all unit types. Useful with+-- 'Data.Metrology.Parser.makeQuasiQuoter'.+siUnits :: [Name]+siUnits =+  [ ''Meter, ''Gram, ''Second, ''Minute, ''Hour, ''Day, ''Ampere+  , ''Kelvin, ''Mole, ''Candela, ''Hertz, ''Liter, ''Newton, ''Pascal+  , ''Joule, ''Watt, ''Coulomb, ''Volt, ''Farad, ''Ohm, ''Siemens+  , ''Weber, ''Tesla, ''Henry, ''Lumen, ''Lux, ''Becquerel, ''Gray+  , ''Sievert, ''Katal, ''Hectare, ''Ton+  ]+    
units-defs.cabal view
@@ -1,5 +1,5 @@ name:           units-defs-version:        1.0.1+version:        1.1 cabal-version:  >= 1.10 synopsis:       Definitions for use with the units package homepage:       http://github.com/goldfirere/units-defs@@ -13,7 +13,6 @@ license-file:   LICENSE build-type:     Simple description:-     This package provides system definitions for use with the separate     @units@ package. See the individual modules for details. @@ -23,12 +22,13 @@ source-repository this   type:     git   location: https://github.com/goldfirere/units-defs.git-  tag:      v1.0.1+  tag:      v1.1  library   build-depends:             base >= 4.7 && < 5,-      units >= 2.0 && < 3+      units >= 2.1 && < 3,+      template-haskell   exposed-modules:     Data.Metrology.SI,     Data.Metrology.SI.Mono,@@ -37,9 +37,11 @@     Data.Metrology.SI.MonoTypes,      Data.Metrology.SI.Units,     Data.Metrology.SI.Dims,-    Data.Metrology.SI.PolyTypes+    Data.Metrology.SI.PolyTypes,+    Data.Metrology.SI.Parser --    Data.Metrology.Imperial.Types --    Data.Metrology.Imperial.Units    default-language:   Haskell2010-+  default-extensions: TemplateHaskell+  ghc-options:        -Wall