units-defs 2.1.0.1 → 2.2
raw patch · 8 files changed
+51/−7 lines, 8 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Data.Dimensions.SI: PlaneAngle :: PlaneAngle
+ Data.Dimensions.SI: SolidAngle :: SolidAngle
+ Data.Dimensions.SI: data PlaneAngle
+ Data.Dimensions.SI: data SolidAngle
+ Data.Dimensions.SI: instance Data.Metrology.Dimensions.Dimension Data.Dimensions.SI.PlaneAngle
+ Data.Dimensions.SI: instance Data.Metrology.Dimensions.Dimension Data.Dimensions.SI.SolidAngle
+ Data.Dimensions.SI: type AngularVelocity = PlaneAngle :/ Time
+ Data.Metrology.SI.MonoTypes: type AngularVelocity = MkQu_D AngularVelocity
+ Data.Metrology.SI.MonoTypes: type PlaneAngle = MkQu_D PlaneAngle
+ Data.Metrology.SI.MonoTypes: type SolidAngle = MkQu_D SolidAngle
+ Data.Metrology.SI.PolyTypes: type AngularVelocity = MkQu_DLN AngularVelocity
+ Data.Metrology.SI.PolyTypes: type PlaneAngle = MkQu_D PlaneAngle
+ Data.Metrology.SI.PolyTypes: type SolidAngle = MkQu_D SolidAngle
+ Data.Units.SI: Arcminute :: Arcminute
+ Data.Units.SI: Arcsecond :: Arcsecond
+ Data.Units.SI: Degree :: Degree
+ Data.Units.SI: Radian :: Radian
+ Data.Units.SI: Steradian :: Steradian
+ Data.Units.SI: data Arcminute
+ Data.Units.SI: data Arcsecond
+ Data.Units.SI: data Degree
+ Data.Units.SI: data Radian
+ Data.Units.SI: data Steradian
+ Data.Units.SI: instance Data.Metrology.Units.Unit Data.Units.SI.Arcminute
+ Data.Units.SI: instance Data.Metrology.Units.Unit Data.Units.SI.Arcsecond
+ Data.Units.SI: instance Data.Metrology.Units.Unit Data.Units.SI.Degree
+ Data.Units.SI: instance Data.Metrology.Units.Unit Data.Units.SI.Radian
+ Data.Units.SI: instance Data.Metrology.Units.Unit Data.Units.SI.Steradian
+ Data.Units.SI: instance GHC.Show.Show Data.Units.SI.Arcminute
+ Data.Units.SI: instance GHC.Show.Show Data.Units.SI.Arcsecond
+ Data.Units.SI: instance GHC.Show.Show Data.Units.SI.Degree
+ Data.Units.SI: instance GHC.Show.Show Data.Units.SI.Radian
+ Data.Units.SI: instance GHC.Show.Show Data.Units.SI.Steradian
- Data.Constants.Mechanics: gravity_G :: forall lcsu_aPE8 n_aPE9. (Fractional n_aPE9, CompatibleUnit lcsu_aPE8 ((:*) ((:*) ((:^) Meter Three) ((:^) ((:@) Kilo Gram) MOne)) ((:^) Second MTwo))) => MkQu_ULN ((:*) ((:*) ((:^) Meter Three) ((:^) ((:@) Kilo Gram) MOne)) ((:^) Second MTwo)) lcsu_aPE8 n_aPE9
+ Data.Constants.Mechanics: gravity_G :: forall lcsu_aRaf n_aRag. (Fractional n_aRag, CompatibleUnit lcsu_aRaf ((:*) ((:*) ((:^) Meter Three) ((:^) ((:@) Kilo Gram) MOne)) ((:^) Second MTwo))) => MkQu_ULN ((:*) ((:*) ((:^) Meter Three) ((:^) ((:@) Kilo Gram) MOne)) ((:^) Second MTwo)) lcsu_aRaf n_aRag
- Data.Constants.Mechanics: gravity_g :: forall lcsu_aPvC n_aPvD. (Fractional n_aPvD, CompatibleUnit lcsu_aPvC ((:/) Meter ((:^) Second Two))) => MkQu_ULN ((:/) Meter ((:^) Second Two)) lcsu_aPvC n_aPvD
+ Data.Constants.Mechanics: gravity_g :: forall lcsu_aR1J n_aR1K. (Fractional n_aR1K, CompatibleUnit lcsu_aR1J ((:/) Meter ((:^) Second Two))) => MkQu_ULN ((:/) Meter ((:^) Second Two)) lcsu_aR1J n_aR1K
- Data.Metrology.SI.Poly: type SI = MkLCSU '[(Length, Meter), (Mass, Kilo :@ Gram), (Time, Second), (Current, Ampere), (Temperature, Kelvin), (AmountOfSubstance, Mole), (LuminousIntensity, Lumen)]
+ Data.Metrology.SI.Poly: type SI = MkLCSU '[(Length, Meter), (Mass, Kilo :@ Gram), (Time, Second), (Current, Ampere), (Temperature, Kelvin), (AmountOfSubstance, Mole), (LuminousIntensity, Lumen), (PlaneAngle, Radian), (SolidAngle, Steradian)]
Files
- CHANGES.md +6/−0
- Data/Dimensions/SI.hs +15/−1
- Data/Metrology/SI/Mono.hs +2/−0
- Data/Metrology/SI/MonoTypes.hs +3/−0
- Data/Metrology/SI/Poly.hs +2/−0
- Data/Metrology/SI/PolyTypes.hs +3/−0
- Data/Units/SI.hs +16/−2
- units-defs.cabal +4/−4
CHANGES.md view
@@ -1,3 +1,9 @@+Version 2.2+-----------++* Add support for new PlaneAngle and SolidAngle dimensions, thanks+to @gittywithexcitement.+ Version 2.1.0.1 ---------------
Data/Dimensions/SI.hs view
@@ -26,6 +26,19 @@ declareDimension "AmountOfSubstance" declareDimension "LuminousIntensity" +-- | A plane angle is dimensionless; alternatively, it has dimension+-- length/length. It would be wrong to divide 2 meters by 1+-- meter and conclude that the quantity is 2 radians or degrees. To make+-- plane angle safe to use, we define it as a fundamental dimension.+declareDimension "PlaneAngle"++-- | As we did for plane angle, we must make solid angle a fundamental+-- dimension to avoid programming mistakes.+-- +-- A solid angle is a measure of the amount of the field of view from some+-- particular point that a given object covers.+declareDimension "SolidAngle"+ type Area = Length :^ Two type Volume = Length :^ Three type Velocity = Length :/ Time@@ -36,7 +49,7 @@ type SpecificVolume = Volume :/ Mass type CurrentDensity = Current :/ Area type MagneticStrength = Current :/ Length-type Concentration = AmountOfSubstance :/ Volume+type Concentration = AmountOfSubstance :/ Volume type Luminance = LuminousIntensity :/ Area type Frequency = Time :^ MOne@@ -58,3 +71,4 @@ type CatalyticActivity = AmountOfSubstance :/ Time type Momentum = Mass :* Velocity+type AngularVelocity = PlaneAngle :/ Time
Data/Metrology/SI/Mono.hs view
@@ -38,3 +38,5 @@ type instance DefaultUnitOfDim D.Temperature = Kelvin type instance DefaultUnitOfDim D.AmountOfSubstance = Mole type instance DefaultUnitOfDim D.LuminousIntensity = Lumen+type instance DefaultUnitOfDim D.PlaneAngle = Radian+type instance DefaultUnitOfDim D.SolidAngle = Steradian
Data/Metrology/SI/MonoTypes.hs view
@@ -26,6 +26,8 @@ type Temperature = MkQu_D D.Temperature type AmountOfSubstance = MkQu_D D.AmountOfSubstance type LuminousIntensity = MkQu_D D.LuminousIntensity+type PlaneAngle = MkQu_D D.PlaneAngle+type SolidAngle = MkQu_D D.SolidAngle type Area = MkQu_D D.Area type Volume = MkQu_D D.Volume@@ -57,3 +59,4 @@ type Kerma = MkQu_D D.Kerma type CatalyticActivity = MkQu_D D.CatalyticActivity type Momentum = MkQu_D D.Momentum+type AngularVelocity = MkQu_D D.AngularVelocity
Data/Metrology/SI/Poly.hs view
@@ -36,4 +36,6 @@ , (D.Temperature, Kelvin) , (D.AmountOfSubstance, Mole) , (D.LuminousIntensity, Lumen)+ , (D.PlaneAngle, Radian)+ , (D.SolidAngle, Steradian) ]
Data/Metrology/SI/PolyTypes.hs view
@@ -25,6 +25,8 @@ type Temperature = MkQu_DLN D.Temperature type AmountOfSubstance = MkQu_DLN D.AmountOfSubstance type LuminousIntensity = MkQu_DLN D.LuminousIntensity+type PlaneAngle = MkQu_D D.PlaneAngle+type SolidAngle = MkQu_D D.SolidAngle type Area = MkQu_DLN D.Area type Volume = MkQu_DLN D.Volume@@ -56,3 +58,4 @@ type Kerma = MkQu_DLN D.Kerma type CatalyticActivity = MkQu_DLN D.CatalyticActivity type Momentum = MkQu_DLN D.Momentum+type AngularVelocity = MkQu_DLN D.AngularVelocity
Data/Units/SI.hs view
@@ -31,6 +31,7 @@ import Data.Metrology.TH import Data.Dimensions.SI import Data.Units.SI.Prefixes ( Kilo, Centi )+import Data.Constants.Math (piR) import Language.Haskell.TH ( Name ) @@ -61,6 +62,10 @@ declareCanonicalUnit "Mole" [t| AmountOfSubstance |] (Just "mol") declareCanonicalUnit "Candela" [t| LuminousIntensity |] (Just "cd") +-- | The two angular dimensions that must be fundamental dimensions.+declareCanonicalUnit "Radian" [t| PlaneAngle |] (Just "rad")+declareCanonicalUnit "Steradian" [t| SolidAngle |] (Just "sr")+ declareDerivedUnit "Hertz" [t| Number :/ Second |] 1 (Just "Hz") -- | This is not in the SI standard, but is used widely.@@ -90,6 +95,14 @@ declareDerivedUnit "Sievert" [t| (Meter :^ Two) :/ (Second :^ Two) |] 1 (Just "Sv") declareDerivedUnit "Katal" [t| Mole :/ Second |] 1 (Just "kat") +-- Non-SI units accepted for use with SI +-- (https://en.wikipedia.org/wiki/International_System_of_Units#Non-SI_units_accepted_for_use_with_SI)+declareDerivedUnit "Degree" [t| Radian |] (piR / 180) (Just "deg")+-- This should be printed as /'/ but Text.Parse.Units.mkSymbolTable says that's illegal.+declareDerivedUnit "Arcminute" [t| Degree |] (1 / 60) (Just "arcminute")+-- This should be printed as /"/ but Text.Parse.Units.mkSymbolTable says that's illegal.+declareDerivedUnit "Arcsecond" [t| Arcminute |] (1 / 60) (Just "arcsecond")+ -- | Derived SI unit declareDerivedUnit "Hectare" [t| Meter :^ Two |] 10000 (Just "ha") @@ -107,6 +120,7 @@ [ ''Meter, ''Gram, ''Second, ''Minute, ''Hour, ''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+ , ''Weber, ''Tesla, ''Henry, ''Lumen, ''Radian, ''Lux, ''Becquerel, ''Gray+ , ''Sievert, ''Katal, ''Degree, ''Arcminute+ , ''Arcsecond,''Hectare, ''Ton ]
units-defs.cabal view
@@ -1,11 +1,11 @@ name: units-defs-version: 2.1.0.1+version: 2.2 cabal-version: >= 1.10 synopsis: Definitions for use with the units package homepage: http://github.com/goldfirere/units-defs category: Physics-author: Richard Eisenberg <rae@cs.brynmawr.edu>, Takayuki Muranushi <muranushi@gmail.com>-maintainer: Richard Eisenberg <rae@cs.brynmawr.edu>, Takayuki Muranushi <muranushi@gmail.com>+author: Richard Eisenberg <rae@richarde.dev>, Takayuki Muranushi <muranushi@gmail.com>+maintainer: Richard Eisenberg <rae@richarde.dev>, Takayuki Muranushi <muranushi@gmail.com> bug-reports: https://github.com/goldfirere/units-defs/issues stability: experimental extra-source-files: README.md, CHANGES.md@@ -22,7 +22,7 @@ source-repository this type: git location: https://github.com/goldfirere/units-defs.git- tag: v2.1.0.1+ tag: v2.2 library build-depends: