convert-units-0: Arithmetic and type checked conversions between units.
Copyright(c) Alice Rixte 2025
LicenseBSD 3
Maintaineralice.rixte@u-bordeaux.fr
Stabilityunstable
Portabilitynon-portable (GHC extensions)
Safe HaskellNone
LanguageHaskell2010

Data.Units.Base.System

Description

Describe a system of units and their dimensions.

Synopsis

Dimensions

type Dim = Type -> Type Source #

A unit dimension.

Modeled as a newtype constructor, just like Unit.

>>> type Speed = Length -/- Time

type family DimId (d :: Dim) :: ZZ Source #

A dimension identifier.

This identifiers allow to sort the units when computing the standard unit.

>>> type instance DimId Length = 300
>>> :kind! BaseUnitOf (Second .^- 1 .*. Meter)
Meter .*. (Second .^. Neg 1)

Two different dimensions must have different identifiers. To make sure this remains true, we maintain here an exhaustive list of dimensions declared in this package and any package that depends on it. Please raise an issue if you added a new dimension.

This package:
DimensionId
Reserved0
NoDim1
Angle1000
Mass2000
Length3000
Time4000
ElectricCurrent5000
Temperature6000
AmountOfSubstance7000
LuminousIntensity8000

Instances

Instances details
type DimId Angle Source # 
Instance details

Defined in Data.Units.AngleSI.System

type DimId Angle = 'Pos 1000
type DimId NoDim Source # 
Instance details

Defined in Data.Units.Base.System

type DimId NoDim = 'Pos 1
type DimId AmountOfSubstance Source # 
Instance details

Defined in Data.Units.SI.System

type DimId Current Source # 
Instance details

Defined in Data.Units.SI.System

type DimId Current = 'Pos 5000
type DimId Length Source # 
Instance details

Defined in Data.Units.SI.System

type DimId Length = 'Pos 3000
type DimId LuminousIntensity Source # 
Instance details

Defined in Data.Units.SI.System

type DimId Mass Source # 
Instance details

Defined in Data.Units.SI.System

type DimId Mass = 'Pos 2000
type DimId Temperature Source # 
Instance details

Defined in Data.Units.SI.System

type DimId Temperature = 'Pos 6000
type DimId Time Source # 
Instance details

Defined in Data.Units.SI.System

type DimId Time = 'Pos 4000
type DimId (d .^. n) Source # 
Instance details

Defined in Data.Units.Base.System

type DimId (d .^. n) = DimId d

class (IsUnit (DimToUnit d), forall a. Coercible (d a) a) => IsDim (d :: Dim) Source #

Associated Types

type DimToUnit (d :: Dim) :: Unit Source #

Instances

Instances details
IsDim Angle Source # 
Instance details

Defined in Data.Units.AngleSI.System

Associated Types

type DimToUnit Angle 
Instance details

Defined in Data.Units.AngleSI.System

IsDim NoDim Source # 
Instance details

Defined in Data.Units.Base.System

Associated Types

type DimToUnit NoDim 
Instance details

Defined in Data.Units.Base.System

IsDim AmountOfSubstance Source # 
Instance details

Defined in Data.Units.SI.System

Associated Types

type DimToUnit AmountOfSubstance 
Instance details

Defined in Data.Units.SI.System

IsDim Current Source # 
Instance details

Defined in Data.Units.SI.System

Associated Types

type DimToUnit Current 
Instance details

Defined in Data.Units.SI.System

IsDim Length Source # 
Instance details

Defined in Data.Units.SI.System

Associated Types

type DimToUnit Length 
Instance details

Defined in Data.Units.SI.System

IsDim LuminousIntensity Source # 
Instance details

Defined in Data.Units.SI.System

Associated Types

type DimToUnit LuminousIntensity 
Instance details

Defined in Data.Units.SI.System

IsDim Mass Source # 
Instance details

Defined in Data.Units.SI.System

Associated Types

type DimToUnit Mass 
Instance details

Defined in Data.Units.SI.System

IsDim Temperature Source # 
Instance details

Defined in Data.Units.SI.System

Associated Types

type DimToUnit Temperature 
Instance details

Defined in Data.Units.SI.System

IsDim Time Source # 
Instance details

Defined in Data.Units.SI.System

Associated Types

type DimToUnit Time 
Instance details

Defined in Data.Units.SI.System

(IsDim d, IsDim e) => IsDim (d .*. e) Source # 
Instance details

Defined in Data.Units.Base.System

Associated Types

type DimToUnit (d .*. e) 
Instance details

Defined in Data.Units.Base.System

IsDim d => IsDim (d .^. n) Source # 
Instance details

Defined in Data.Units.Base.System

Associated Types

type DimToUnit (d .^. n) 
Instance details

Defined in Data.Units.Base.System

type DimToUnit (d .^. n) = DimToUnit d .^. n

class ShowDim (d :: Dim) where Source #

Dimensions that can be shown as a string, or as a type error message.

Minimal complete definition

showDim | showsDimPrec

Associated Types

type ShowDimType (d :: Dim) :: ErrorMessage Source #

Allows to print dimensions in conversion error messages

>>> type ShowDimType Length = "L"

Methods

showsDimPrec :: Int -> ShowS Source #

Convert a dimension to a readable string

showsDimPrec should satisfy the law :

showsDimPrec d x r ++ s  ==  showsPrec d x (r ++ s)

showDim :: String Source #

Convert a dimension to a string representing its type.

>>> showDim  @(Length ./. Time)
"Length .*. Time.^-1"

prettysDimPrec :: Int -> ShowS Source #

Same as showsDimPrec but for pretty printing.

prettysDimPrec should satisfy the law :

prettysDimPrec d x r ++ s  ==  prettysPrec d x (r ++ s)

prettyDim :: String Source #

Same as showDim but for pretty printing

>>> putStrLn $ prettyDim @(Kilo Meter ./. Second)
km.s⁻¹

Instances

Instances details
ShowDim Angle Source # 
Instance details

Defined in Data.Units.AngleSI.System

Associated Types

type ShowDimType Angle 
Instance details

Defined in Data.Units.AngleSI.System

type ShowDimType Angle = 'Text "A"

Methods

showsDimPrec :: Int -> ShowS Source #

showDim :: String Source #

prettysDimPrec :: Int -> ShowS Source #

prettyDim :: String Source #

ShowDim NoDim Source # 
Instance details

Defined in Data.Units.Base.System

Associated Types

type ShowDimType NoDim 
Instance details

Defined in Data.Units.Base.System

type ShowDimType NoDim = 'Text "NoDim"

Methods

showsDimPrec :: Int -> ShowS Source #

showDim :: String Source #

prettysDimPrec :: Int -> ShowS Source #

prettyDim :: String Source #

ShowDim AmountOfSubstance Source # 
Instance details

Defined in Data.Units.SI.System

Associated Types

type ShowDimType AmountOfSubstance 
Instance details

Defined in Data.Units.SI.System

Methods

showsDimPrec :: Int -> ShowS Source #

showDim :: String Source #

prettysDimPrec :: Int -> ShowS Source #

prettyDim :: String Source #

ShowDim Current Source # 
Instance details

Defined in Data.Units.SI.System

Associated Types

type ShowDimType Current 
Instance details

Defined in Data.Units.SI.System

Methods

showsDimPrec :: Int -> ShowS Source #

showDim :: String Source #

prettysDimPrec :: Int -> ShowS Source #

prettyDim :: String Source #

ShowDim Length Source # 
Instance details

Defined in Data.Units.SI.System

Associated Types

type ShowDimType Length 
Instance details

Defined in Data.Units.SI.System

type ShowDimType Length = 'Text "L"

Methods

showsDimPrec :: Int -> ShowS Source #

showDim :: String Source #

prettysDimPrec :: Int -> ShowS Source #

prettyDim :: String Source #

ShowDim LuminousIntensity Source # 
Instance details

Defined in Data.Units.SI.System

Associated Types

type ShowDimType LuminousIntensity 
Instance details

Defined in Data.Units.SI.System

Methods

showsDimPrec :: Int -> ShowS Source #

showDim :: String Source #

prettysDimPrec :: Int -> ShowS Source #

prettyDim :: String Source #

ShowDim Mass Source # 
Instance details

Defined in Data.Units.SI.System

Associated Types

type ShowDimType Mass 
Instance details

Defined in Data.Units.SI.System

type ShowDimType Mass = 'Text "M"

Methods

showsDimPrec :: Int -> ShowS Source #

showDim :: String Source #

prettysDimPrec :: Int -> ShowS Source #

prettyDim :: String Source #

ShowDim Temperature Source # 
Instance details

Defined in Data.Units.SI.System

Associated Types

type ShowDimType Temperature 
Instance details

Defined in Data.Units.SI.System

Methods

showsDimPrec :: Int -> ShowS Source #

showDim :: String Source #

prettysDimPrec :: Int -> ShowS Source #

prettyDim :: String Source #

ShowDim Time Source # 
Instance details

Defined in Data.Units.SI.System

Associated Types

type ShowDimType Time 
Instance details

Defined in Data.Units.SI.System

type ShowDimType Time = 'Text "T"

Methods

showsDimPrec :: Int -> ShowS Source #

showDim :: String Source #

prettysDimPrec :: Int -> ShowS Source #

prettyDim :: String Source #

(ShowDim u, ShowDim v) => ShowDim (u .*. v) Source # 
Instance details

Defined in Data.Units.Base.System

Associated Types

type ShowDimType (u .*. v) 
Instance details

Defined in Data.Units.Base.System

type ShowDimType (u .*. v) = (ShowDimType u ':<>: 'Text "\8901") ':<>: ShowDimType v

Methods

showsDimPrec :: Int -> ShowS Source #

showDim :: String Source #

prettysDimPrec :: Int -> ShowS Source #

prettyDim :: String Source #

(ShowDim u, KnownInt n) => ShowDim (u .^. n) Source # 
Instance details

Defined in Data.Units.Base.System

Associated Types

type ShowDimType (u .^. n) 
Instance details

Defined in Data.Units.Base.System

type ShowDimType (u .^. n)

Methods

showsDimPrec :: Int -> ShowS Source #

showDim :: String Source #

prettysDimPrec :: Int -> ShowS Source #

prettyDim :: String Source #

prettysDim :: forall (d :: Dim). ShowDim d => ShowS Source #

Equivalent to prettysDimPrec with a precedence of 0.

showsDim :: forall (d :: Dim). ShowDim d => ShowS Source #

Equivalent to showsDimPrec with a precedence of 0.

showDimOf :: (IsUnit u, ShowDim (DimOf u)) => u a -> String Source #

Show the dimension of a quantity.

>>> showDimOf (quantity @(Kilo Meter ./. Second) 1)
"Length .*. Time.^-1"

prettyDimOf :: (IsUnit u, ShowDim (DimOf u)) => u a -> String Source #

Same as showDimOf but for pretty printing. >>> putStrLn $ prettyDimOf (quantity @(Kilo Meter ./. Second) 1) L.T⁻¹

putDimOf :: (IsUnit u, ShowDim (DimOf u)) => u a -> IO () Source #

Print the dimension of a quantity.

>>> putDimOf (quantity @(Kilo Meter ./. Second) 1)
L.T⁻¹

type NormalizeDim (d :: Type -> Type) = NormalizeFlatDim (Flatten d) Source #

Units

type Unit = Type -> Type Source #

A unit is represented by a newtype constructor. A quantity of some unit u is of type u a.

class IsUnit u => ShowUnit (u :: Unit) where Source #

Units that can be shown as a string, or as a type error message.

Minimal complete definition

showUnit | showsUnitPrec

Associated Types

type ShowUnitType (u :: Unit) :: ErrorMessage Source #

Allows to print units in conversion error messages

>>> type ShowUnit Meter = "m"

Methods

showsUnitPrec :: Int -> ShowS Source #

Convert a unit to a readable string

showsUnitPrec should satisfy the law :

showsUnitPrec d x r ++ s  ==  showsPrec d x (r ++ s)

showUnit :: String Source #

Convert a unit to a string representing its type.

>>> showUnit @(Kilo Meter ./. Second)
"Kilo Meter .*. Second.^-1"

prettysUnitPrec :: Int -> ShowS Source #

Same as showsUnitPrec but for pretty printing.

prettyUnit :: String Source #

Same as showUnit but for pretty printing

>>> putStrLn $ prettyUnit @(Kilo Meter ./. Second)
km.s⁻¹

Instances

Instances details
ShowUnit Lumen Source # 
Instance details

Defined in Data.Units.AngleSI.Derived

Associated Types

type ShowUnitType Lumen 
Instance details

Defined in Data.Units.AngleSI.Derived

type ShowUnitType Lumen = 'Text "lm"

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit Lux Source # 
Instance details

Defined in Data.Units.AngleSI.Derived

Associated Types

type ShowUnitType Lux 
Instance details

Defined in Data.Units.AngleSI.Derived

type ShowUnitType Lux = 'Text "lx"

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit Steradian Source # 
Instance details

Defined in Data.Units.AngleSI.Derived

Associated Types

type ShowUnitType Steradian 
Instance details

Defined in Data.Units.AngleSI.Derived

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit Degree Source # 
Instance details

Defined in Data.Units.AngleSI.NonStd.Angle

Associated Types

type ShowUnitType Degree 
Instance details

Defined in Data.Units.AngleSI.NonStd.Angle

type ShowUnitType Degree = 'Text "\176"

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit Gradian Source # 
Instance details

Defined in Data.Units.AngleSI.NonStd.Angle

Associated Types

type ShowUnitType Gradian 
Instance details

Defined in Data.Units.AngleSI.NonStd.Angle

type ShowUnitType Gradian = 'Text "grad"

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit Turn Source # 
Instance details

Defined in Data.Units.AngleSI.NonStd.Angle

Associated Types

type ShowUnitType Turn 
Instance details

Defined in Data.Units.AngleSI.NonStd.Angle

type ShowUnitType Turn = 'Text "tr"

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit Radian Source # 
Instance details

Defined in Data.Units.AngleSI.System

Associated Types

type ShowUnitType Radian 
Instance details

Defined in Data.Units.AngleSI.System

type ShowUnitType Radian = 'Text "rad"

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit Fahrenheit Source # 
Instance details

Defined in Data.Units.NonStd.Temperature

Associated Types

type ShowUnitType Fahrenheit 
Instance details

Defined in Data.Units.NonStd.Temperature

type ShowUnitType Fahrenheit = 'Text "\176F"

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit Hour Source # 
Instance details

Defined in Data.Units.NonStd.Time

Associated Types

type ShowUnitType Hour 
Instance details

Defined in Data.Units.NonStd.Time

type ShowUnitType Hour = 'Text "hr"

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit Minute Source # 
Instance details

Defined in Data.Units.NonStd.Time

Associated Types

type ShowUnitType Minute 
Instance details

Defined in Data.Units.NonStd.Time

type ShowUnitType Minute = 'Text "min"

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit Lumen Source # 
Instance details

Defined in Data.Units.SI.Derived.Angle

Associated Types

type ShowUnitType Lumen 
Instance details

Defined in Data.Units.SI.Derived.Angle

type ShowUnitType Lumen = 'Text "lm"

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit Lux Source # 
Instance details

Defined in Data.Units.SI.Derived.Angle

Associated Types

type ShowUnitType Lux 
Instance details

Defined in Data.Units.SI.Derived.Angle

type ShowUnitType Lux = 'Text "lx"

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit Radian Source # 
Instance details

Defined in Data.Units.SI.Derived.Angle

Associated Types

type ShowUnitType Radian 
Instance details

Defined in Data.Units.SI.Derived.Angle

type ShowUnitType Radian = 'Text "rad"

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit Steradian Source # 
Instance details

Defined in Data.Units.SI.Derived.Angle

Associated Types

type ShowUnitType Steradian 
Instance details

Defined in Data.Units.SI.Derived.Angle

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit Becquerel Source # 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

Associated Types

type ShowUnitType Becquerel 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit Celsius Source # 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

Associated Types

type ShowUnitType Celsius 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

type ShowUnitType Celsius = 'Text "\176C"

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit Coulomb Source # 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

Associated Types

type ShowUnitType Coulomb 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit Farad Source # 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

Associated Types

type ShowUnitType Farad 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

type ShowUnitType Farad = 'Text "F"

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit Gray Source # 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

Associated Types

type ShowUnitType Gray 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

type ShowUnitType Gray = 'Text "Gy"

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit Henry Source # 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

Associated Types

type ShowUnitType Henry 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

type ShowUnitType Henry = 'Text "H"

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit Hertz Source # 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

Associated Types

type ShowUnitType Hertz 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

type ShowUnitType Hertz = 'Text "Hz"

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit Joule Source # 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

Associated Types

type ShowUnitType Joule 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

type ShowUnitType Joule = 'Text "J"

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit Katal Source # 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

Associated Types

type ShowUnitType Katal 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

type ShowUnitType Katal = 'Text "kat"

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit Newton Source # 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

Associated Types

type ShowUnitType Newton 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit Ohm Source # 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

Associated Types

type ShowUnitType Ohm 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

type ShowUnitType Ohm = 'Text "\937"

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit Pascal Source # 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

Associated Types

type ShowUnitType Pascal 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

type ShowUnitType Pascal = 'Text "Pa"

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit Siemens Source # 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

Associated Types

type ShowUnitType Siemens 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit Sievert Source # 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

Associated Types

type ShowUnitType Sievert 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit Tesla Source # 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

Associated Types

type ShowUnitType Tesla 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

type ShowUnitType Tesla = 'Text "T"

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit Volt Source # 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

Associated Types

type ShowUnitType Volt 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

type ShowUnitType Volt = 'Text "V"

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit Watt Source # 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

Associated Types

type ShowUnitType Watt 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

type ShowUnitType Watt = 'Text "W"

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit Weber Source # 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

Associated Types

type ShowUnitType Weber 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

type ShowUnitType Weber = 'Text "Wb"

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit Degree Source # 
Instance details

Defined in Data.Units.SI.NonStd.Angle

Associated Types

type ShowUnitType Degree 
Instance details

Defined in Data.Units.SI.NonStd.Angle

type ShowUnitType Degree = 'Text "\176"

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit Gradian Source # 
Instance details

Defined in Data.Units.SI.NonStd.Angle

Associated Types

type ShowUnitType Gradian 
Instance details

Defined in Data.Units.SI.NonStd.Angle

type ShowUnitType Gradian = 'Text "grad"

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit Turn Source # 
Instance details

Defined in Data.Units.SI.NonStd.Angle

Associated Types

type ShowUnitType Turn 
Instance details

Defined in Data.Units.SI.NonStd.Angle

type ShowUnitType Turn = 'Text "tr"

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit Ampere Source # 
Instance details

Defined in Data.Units.SI.System

Associated Types

type ShowUnitType Ampere 
Instance details

Defined in Data.Units.SI.System

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit Candela Source # 
Instance details

Defined in Data.Units.SI.System

Associated Types

type ShowUnitType Candela 
Instance details

Defined in Data.Units.SI.System

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit Gram Source # 
Instance details

Defined in Data.Units.SI.System

Associated Types

type ShowUnitType Gram 
Instance details

Defined in Data.Units.SI.System

type ShowUnitType Gram = 'Text "g"

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit Kelvin Source # 
Instance details

Defined in Data.Units.SI.System

Associated Types

type ShowUnitType Kelvin 
Instance details

Defined in Data.Units.SI.System

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit Meter Source # 
Instance details

Defined in Data.Units.SI.System

Associated Types

type ShowUnitType Meter 
Instance details

Defined in Data.Units.SI.System

type ShowUnitType Meter = 'Text "m"

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit Mole Source # 
Instance details

Defined in Data.Units.SI.System

Associated Types

type ShowUnitType Mole 
Instance details

Defined in Data.Units.SI.System

type ShowUnitType Mole = 'Text "mol"

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit Second Source # 
Instance details

Defined in Data.Units.SI.System

Associated Types

type ShowUnitType Second 
Instance details

Defined in Data.Units.SI.System

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit u => ShowUnit (MetaUnit u) Source # 
Instance details

Defined in Data.Units.Base.System

Associated Types

type ShowUnitType (MetaUnit u) 
Instance details

Defined in Data.Units.Base.System

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit u => ShowUnit (Atto u) Source # 
Instance details

Defined in Data.Units.SI.Prefixes

Associated Types

type ShowUnitType (Atto u) 
Instance details

Defined in Data.Units.SI.Prefixes

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit u => ShowUnit (Centi u) Source # 
Instance details

Defined in Data.Units.SI.Prefixes

Associated Types

type ShowUnitType (Centi u) 
Instance details

Defined in Data.Units.SI.Prefixes

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit u => ShowUnit (Deca u) Source # 
Instance details

Defined in Data.Units.SI.Prefixes

Associated Types

type ShowUnitType (Deca u) 
Instance details

Defined in Data.Units.SI.Prefixes

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit u => ShowUnit (Deci u) Source # 
Instance details

Defined in Data.Units.SI.Prefixes

Associated Types

type ShowUnitType (Deci u) 
Instance details

Defined in Data.Units.SI.Prefixes

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit u => ShowUnit (Exa u) Source # 
Instance details

Defined in Data.Units.SI.Prefixes

Associated Types

type ShowUnitType (Exa u) 
Instance details

Defined in Data.Units.SI.Prefixes

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit u => ShowUnit (Femto u) Source # 
Instance details

Defined in Data.Units.SI.Prefixes

Associated Types

type ShowUnitType (Femto u) 
Instance details

Defined in Data.Units.SI.Prefixes

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit u => ShowUnit (Giga u) Source # 
Instance details

Defined in Data.Units.SI.Prefixes

Associated Types

type ShowUnitType (Giga u) 
Instance details

Defined in Data.Units.SI.Prefixes

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit u => ShowUnit (Hecto u) Source # 
Instance details

Defined in Data.Units.SI.Prefixes

Associated Types

type ShowUnitType (Hecto u) 
Instance details

Defined in Data.Units.SI.Prefixes

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit u => ShowUnit (Kilo u) Source # 
Instance details

Defined in Data.Units.SI.Prefixes

Associated Types

type ShowUnitType (Kilo u) 
Instance details

Defined in Data.Units.SI.Prefixes

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit u => ShowUnit (Mega u) Source # 
Instance details

Defined in Data.Units.SI.Prefixes

Associated Types

type ShowUnitType (Mega u) 
Instance details

Defined in Data.Units.SI.Prefixes

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit u => ShowUnit (Micro u) Source # 
Instance details

Defined in Data.Units.SI.Prefixes

Associated Types

type ShowUnitType (Micro u) 
Instance details

Defined in Data.Units.SI.Prefixes

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit u => ShowUnit (Milli u) Source # 
Instance details

Defined in Data.Units.SI.Prefixes

Associated Types

type ShowUnitType (Milli u) 
Instance details

Defined in Data.Units.SI.Prefixes

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit u => ShowUnit (Nano u) Source # 
Instance details

Defined in Data.Units.SI.Prefixes

Associated Types

type ShowUnitType (Nano u) 
Instance details

Defined in Data.Units.SI.Prefixes

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit u => ShowUnit (Peta u) Source # 
Instance details

Defined in Data.Units.SI.Prefixes

Associated Types

type ShowUnitType (Peta u) 
Instance details

Defined in Data.Units.SI.Prefixes

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit u => ShowUnit (Pico u) Source # 
Instance details

Defined in Data.Units.SI.Prefixes

Associated Types

type ShowUnitType (Pico u) 
Instance details

Defined in Data.Units.SI.Prefixes

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit u => ShowUnit (Quecca u) Source # 
Instance details

Defined in Data.Units.SI.Prefixes

Associated Types

type ShowUnitType (Quecca u) 
Instance details

Defined in Data.Units.SI.Prefixes

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit u => ShowUnit (Quecto u) Source # 
Instance details

Defined in Data.Units.SI.Prefixes

Associated Types

type ShowUnitType (Quecto u) 
Instance details

Defined in Data.Units.SI.Prefixes

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit u => ShowUnit (Ronna u) Source # 
Instance details

Defined in Data.Units.SI.Prefixes

Associated Types

type ShowUnitType (Ronna u) 
Instance details

Defined in Data.Units.SI.Prefixes

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit u => ShowUnit (Ronto u) Source # 
Instance details

Defined in Data.Units.SI.Prefixes

Associated Types

type ShowUnitType (Ronto u) 
Instance details

Defined in Data.Units.SI.Prefixes

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit u => ShowUnit (Tera u) Source # 
Instance details

Defined in Data.Units.SI.Prefixes

Associated Types

type ShowUnitType (Tera u) 
Instance details

Defined in Data.Units.SI.Prefixes

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit u => ShowUnit (Yocto u) Source # 
Instance details

Defined in Data.Units.SI.Prefixes

Associated Types

type ShowUnitType (Yocto u) 
Instance details

Defined in Data.Units.SI.Prefixes

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit u => ShowUnit (Yotta u) Source # 
Instance details

Defined in Data.Units.SI.Prefixes

Associated Types

type ShowUnitType (Yotta u) 
Instance details

Defined in Data.Units.SI.Prefixes

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit u => ShowUnit (Zepto u) Source # 
Instance details

Defined in Data.Units.SI.Prefixes

Associated Types

type ShowUnitType (Zepto u) 
Instance details

Defined in Data.Units.SI.Prefixes

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

ShowUnit u => ShowUnit (Zetta u) Source # 
Instance details

Defined in Data.Units.SI.Prefixes

Associated Types

type ShowUnitType (Zetta u) 
Instance details

Defined in Data.Units.SI.Prefixes

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

(ShowPrefix p, ShowUnit u) => ShowUnit (MetaPrefix p u) Source # 
Instance details

Defined in Data.Units.Base.Prefix

Associated Types

type ShowUnitType (MetaPrefix p u) 
Instance details

Defined in Data.Units.Base.Prefix

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

(ShowUnit u, ShowUnit v) => ShowUnit (u .*. v) Source # 
Instance details

Defined in Data.Units.Base.System

Associated Types

type ShowUnitType (u .*. v) 
Instance details

Defined in Data.Units.Base.System

type ShowUnitType (u .*. v) = (ShowUnitType u ':<>: 'Text "\8901") ':<>: ShowUnitType v

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

(ShowUnit u, KnownInt n) => ShowUnit (u .^. n) Source # 
Instance details

Defined in Data.Units.Base.System

Associated Types

type ShowUnitType (u .^. n) 
Instance details

Defined in Data.Units.Base.System

type ShowUnitType (u .^. n)

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

(KnownNat b, KnownInt offs) => ShowUnit (Tet b offs) Source # 
Instance details

Defined in Data.Units.NonStd.Frequency

Associated Types

type ShowUnitType (Tet b offs) 
Instance details

Defined in Data.Units.NonStd.Frequency

type ShowUnitType (Tet b offs) = ((('Text "tet{b=" ':<>: 'ShowType b) ':<>: 'Text ",offs=") ':<>: 'ShowType offs) ':<>: 'Text "}"

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

prettysUnit :: forall (u :: Unit). ShowUnit u => ShowS Source #

Equivalent to prettysUnitPrec with a precedence of 0.

showsUnit :: forall (u :: Unit). ShowUnit u => ShowS Source #

Equivalent to showsUnitPrec with a precedence of 0.

prettyUnitInfo :: forall (u :: Unit) (du :: Dim) (nu :: Unit). (du ~ DimOf u, nu ~ BaseUnitOf u, ShowUnit u, ShowDim du, ShowUnit nu) => String Source #

Pretty print information about a unit, its dimension and its normalized form.

putInfoU :: forall (u :: Unit) (du :: Dim) (nu :: Unit). (du ~ DimOf u, nu ~ BaseUnitOf u, ShowUnit u, ShowDim du, ShowUnit nu) => IO () Source #

Print information about a unit, its dimension and its normalized form.

>>> putInfoU @Newton
Unit:       Newton
 abbr:      N
Dimension:  Mass .*. Length .*. Time.^-2
 abbr:      M⋅L⋅T⁻²
Normalized: Kilo Gram .*. Meter .*. Second.^-2
 abbr:      kg⋅m⋅s⁻²

class (forall a. Coercible (u a) a) => IsUnit (u :: Unit) Source #

Any unit must have a dimension. Additionally, a unit is a newtype constructor : a quantity u a can always be coerced to its magnitude a.

Associated Types

type DimOf (u :: Unit) :: Dim Source #

Instances

Instances details
IsUnit Lumen Source # 
Instance details

Defined in Data.Units.AngleSI.Derived

Associated Types

type DimOf Lumen 
Instance details

Defined in Data.Units.AngleSI.Derived

IsUnit Lux Source # 
Instance details

Defined in Data.Units.AngleSI.Derived

Associated Types

type DimOf Lux 
Instance details

Defined in Data.Units.AngleSI.Derived

IsUnit Steradian Source # 
Instance details

Defined in Data.Units.AngleSI.Derived

Associated Types

type DimOf Steradian 
Instance details

Defined in Data.Units.AngleSI.Derived

IsUnit Degree Source # 
Instance details

Defined in Data.Units.AngleSI.NonStd.Angle

Associated Types

type DimOf Degree 
Instance details

Defined in Data.Units.AngleSI.NonStd.Angle

IsUnit Gradian Source # 
Instance details

Defined in Data.Units.AngleSI.NonStd.Angle

Associated Types

type DimOf Gradian 
Instance details

Defined in Data.Units.AngleSI.NonStd.Angle

IsUnit Turn Source # 
Instance details

Defined in Data.Units.AngleSI.NonStd.Angle

Associated Types

type DimOf Turn 
Instance details

Defined in Data.Units.AngleSI.NonStd.Angle

IsUnit Radian Source # 
Instance details

Defined in Data.Units.AngleSI.System

Associated Types

type DimOf Radian 
Instance details

Defined in Data.Units.AngleSI.System

IsUnit NoUnit Source # 
Instance details

Defined in Data.Units.Base.System

Associated Types

type DimOf NoUnit 
Instance details

Defined in Data.Units.Base.System

IsUnit Fahrenheit Source # 
Instance details

Defined in Data.Units.NonStd.Temperature

Associated Types

type DimOf Fahrenheit 
Instance details

Defined in Data.Units.NonStd.Temperature

IsUnit Hour Source # 
Instance details

Defined in Data.Units.NonStd.Time

Associated Types

type DimOf Hour 
Instance details

Defined in Data.Units.NonStd.Time

type DimOf Hour = Time
IsUnit Minute Source # 
Instance details

Defined in Data.Units.NonStd.Time

Associated Types

type DimOf Minute 
Instance details

Defined in Data.Units.NonStd.Time

IsUnit Lumen Source # 
Instance details

Defined in Data.Units.SI.Derived.Angle

Associated Types

type DimOf Lumen 
Instance details

Defined in Data.Units.SI.Derived.Angle

IsUnit Lux Source # 
Instance details

Defined in Data.Units.SI.Derived.Angle

Associated Types

type DimOf Lux 
Instance details

Defined in Data.Units.SI.Derived.Angle

IsUnit Radian Source # 
Instance details

Defined in Data.Units.SI.Derived.Angle

Associated Types

type DimOf Radian 
Instance details

Defined in Data.Units.SI.Derived.Angle

IsUnit Steradian Source # 
Instance details

Defined in Data.Units.SI.Derived.Angle

Associated Types

type DimOf Steradian 
Instance details

Defined in Data.Units.SI.Derived.Angle

IsUnit Becquerel Source # 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

Associated Types

type DimOf Becquerel 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

IsUnit Celsius Source # 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

Associated Types

type DimOf Celsius 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

IsUnit Coulomb Source # 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

Associated Types

type DimOf Coulomb 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

IsUnit Farad Source # 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

Associated Types

type DimOf Farad 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

IsUnit Gray Source # 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

Associated Types

type DimOf Gray 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

IsUnit Henry Source # 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

Associated Types

type DimOf Henry 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

IsUnit Hertz Source # 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

Associated Types

type DimOf Hertz 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

IsUnit Joule Source # 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

Associated Types

type DimOf Joule 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

IsUnit Katal Source # 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

Associated Types

type DimOf Katal 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

IsUnit Newton Source # 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

Associated Types

type DimOf Newton 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

IsUnit Ohm Source # 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

Associated Types

type DimOf Ohm 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

IsUnit Pascal Source # 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

Associated Types

type DimOf Pascal 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

IsUnit Siemens Source # 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

Associated Types

type DimOf Siemens 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

IsUnit Sievert Source # 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

Associated Types

type DimOf Sievert 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

IsUnit Tesla Source # 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

Associated Types

type DimOf Tesla 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

IsUnit Volt Source # 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

Associated Types

type DimOf Volt 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

IsUnit Watt Source # 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

Associated Types

type DimOf Watt 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

IsUnit Weber Source # 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

Associated Types

type DimOf Weber 
Instance details

Defined in Data.Units.SI.Derived.NonAngle

IsUnit Degree Source # 
Instance details

Defined in Data.Units.SI.NonStd.Angle

Associated Types

type DimOf Degree 
Instance details

Defined in Data.Units.SI.NonStd.Angle

IsUnit Gradian Source # 
Instance details

Defined in Data.Units.SI.NonStd.Angle

Associated Types

type DimOf Gradian 
Instance details

Defined in Data.Units.SI.NonStd.Angle

IsUnit Turn Source # 
Instance details

Defined in Data.Units.SI.NonStd.Angle

Associated Types

type DimOf Turn 
Instance details

Defined in Data.Units.SI.NonStd.Angle

IsUnit Ampere Source # 
Instance details

Defined in Data.Units.SI.System

Associated Types

type DimOf Ampere 
Instance details

Defined in Data.Units.SI.System

IsUnit Candela Source # 
Instance details

Defined in Data.Units.SI.System

Associated Types

type DimOf Candela 
Instance details

Defined in Data.Units.SI.System

IsUnit Gram Source # 
Instance details

Defined in Data.Units.SI.System

Associated Types

type DimOf Gram 
Instance details

Defined in Data.Units.SI.System

type DimOf Gram = Mass
IsUnit Kelvin Source # 
Instance details

Defined in Data.Units.SI.System

Associated Types

type DimOf Kelvin 
Instance details

Defined in Data.Units.SI.System

IsUnit Meter Source # 
Instance details

Defined in Data.Units.SI.System

Associated Types

type DimOf Meter 
Instance details

Defined in Data.Units.SI.System

IsUnit Mole Source # 
Instance details

Defined in Data.Units.SI.System

Associated Types

type DimOf Mole 
Instance details

Defined in Data.Units.SI.System

IsUnit Second Source # 
Instance details

Defined in Data.Units.SI.System

Associated Types

type DimOf Second 
Instance details

Defined in Data.Units.SI.System

IsUnit u => IsUnit (MetaUnit u) Source # 
Instance details

Defined in Data.Units.Base.System

Associated Types

type DimOf (MetaUnit u) 
Instance details

Defined in Data.Units.Base.System

type DimOf (MetaUnit u) = DimOf u
IsUnit u => IsUnit (Atto u) Source # 
Instance details

Defined in Data.Units.SI.Prefixes

Associated Types

type DimOf (Atto u0) 
Instance details

Defined in Data.Units.SI.Prefixes

type DimOf (Atto u0) = DimOf (MetaPrefix Atto u0)
IsUnit u => IsUnit (Centi u) Source # 
Instance details

Defined in Data.Units.SI.Prefixes

Associated Types

type DimOf (Centi u0) 
Instance details

Defined in Data.Units.SI.Prefixes

type DimOf (Centi u0) = DimOf (MetaPrefix Centi u0)
IsUnit u => IsUnit (Deca u) Source # 
Instance details

Defined in Data.Units.SI.Prefixes

Associated Types

type DimOf (Deca u0) 
Instance details

Defined in Data.Units.SI.Prefixes

type DimOf (Deca u0) = DimOf (MetaPrefix Deca u0)
IsUnit u => IsUnit (Deci u) Source # 
Instance details

Defined in Data.Units.SI.Prefixes

Associated Types

type DimOf (Deci u0) 
Instance details

Defined in Data.Units.SI.Prefixes

type DimOf (Deci u0) = DimOf (MetaPrefix Deci u0)
IsUnit u => IsUnit (Exa u) Source # 
Instance details

Defined in Data.Units.SI.Prefixes

Associated Types

type DimOf (Exa u0) 
Instance details

Defined in Data.Units.SI.Prefixes

type DimOf (Exa u0) = DimOf (MetaPrefix Exa u0)
IsUnit u => IsUnit (Femto u) Source # 
Instance details

Defined in Data.Units.SI.Prefixes

Associated Types

type DimOf (Femto u0) 
Instance details

Defined in Data.Units.SI.Prefixes

type DimOf (Femto u0) = DimOf (MetaPrefix Femto u0)
IsUnit u => IsUnit (Giga u) Source # 
Instance details

Defined in Data.Units.SI.Prefixes

Associated Types

type DimOf (Giga u0) 
Instance details

Defined in Data.Units.SI.Prefixes

type DimOf (Giga u0) = DimOf (MetaPrefix Giga u0)
IsUnit u => IsUnit (Hecto u) Source # 
Instance details

Defined in Data.Units.SI.Prefixes

Associated Types

type DimOf (Hecto u0) 
Instance details

Defined in Data.Units.SI.Prefixes

type DimOf (Hecto u0) = DimOf (MetaPrefix Hecto u0)
IsUnit u => IsUnit (Kilo u) Source # 
Instance details

Defined in Data.Units.SI.Prefixes

Associated Types

type DimOf (Kilo u0) 
Instance details

Defined in Data.Units.SI.Prefixes

type DimOf (Kilo u0) = DimOf (MetaPrefix Kilo u0)
IsUnit u => IsUnit (Mega u) Source # 
Instance details

Defined in Data.Units.SI.Prefixes

Associated Types

type DimOf (Mega u0) 
Instance details

Defined in Data.Units.SI.Prefixes

type DimOf (Mega u0) = DimOf (MetaPrefix Mega u0)
IsUnit u => IsUnit (Micro u) Source # 
Instance details

Defined in Data.Units.SI.Prefixes

Associated Types

type DimOf (Micro u0) 
Instance details

Defined in Data.Units.SI.Prefixes

type DimOf (Micro u0) = DimOf (MetaPrefix Micro u0)
IsUnit u => IsUnit (Milli u) Source # 
Instance details

Defined in Data.Units.SI.Prefixes

Associated Types

type DimOf (Milli u0) 
Instance details

Defined in Data.Units.SI.Prefixes

type DimOf (Milli u0) = DimOf (MetaPrefix Milli u0)
IsUnit u => IsUnit (Nano u) Source # 
Instance details

Defined in Data.Units.SI.Prefixes

Associated Types

type DimOf (Nano u0) 
Instance details

Defined in Data.Units.SI.Prefixes

type DimOf (Nano u0) = DimOf (MetaPrefix Nano u0)
IsUnit u => IsUnit (Peta u) Source # 
Instance details

Defined in Data.Units.SI.Prefixes

Associated Types

type DimOf (Peta u0) 
Instance details

Defined in Data.Units.SI.Prefixes

type DimOf (Peta u0) = DimOf (MetaPrefix Peta u0)
IsUnit u => IsUnit (Pico u) Source # 
Instance details

Defined in Data.Units.SI.Prefixes

Associated Types

type DimOf (Pico u0) 
Instance details

Defined in Data.Units.SI.Prefixes

type DimOf (Pico u0) = DimOf (MetaPrefix Pico u0)
IsUnit u => IsUnit (Quecca u) Source # 
Instance details

Defined in Data.Units.SI.Prefixes

Associated Types

type DimOf (Quecca u0) 
Instance details

Defined in Data.Units.SI.Prefixes

IsUnit u => IsUnit (Quecto u) Source # 
Instance details

Defined in Data.Units.SI.Prefixes

Associated Types

type DimOf (Quecto u0) 
Instance details

Defined in Data.Units.SI.Prefixes

IsUnit u => IsUnit (Ronna u) Source # 
Instance details

Defined in Data.Units.SI.Prefixes

Associated Types

type DimOf (Ronna u0) 
Instance details

Defined in Data.Units.SI.Prefixes

type DimOf (Ronna u0) = DimOf (MetaPrefix Ronna u0)
IsUnit u => IsUnit (Ronto u) Source # 
Instance details

Defined in Data.Units.SI.Prefixes

Associated Types

type DimOf (Ronto u0) 
Instance details

Defined in Data.Units.SI.Prefixes

type DimOf (Ronto u0) = DimOf (MetaPrefix Ronto u0)
IsUnit u => IsUnit (Tera u) Source # 
Instance details

Defined in Data.Units.SI.Prefixes

Associated Types

type DimOf (Tera u0) 
Instance details

Defined in Data.Units.SI.Prefixes

type DimOf (Tera u0) = DimOf (MetaPrefix Tera u0)
IsUnit u => IsUnit (Yocto u) Source # 
Instance details

Defined in Data.Units.SI.Prefixes

Associated Types

type DimOf (Yocto u0) 
Instance details

Defined in Data.Units.SI.Prefixes

type DimOf (Yocto u0) = DimOf (MetaPrefix Yocto u0)
IsUnit u => IsUnit (Yotta u) Source # 
Instance details

Defined in Data.Units.SI.Prefixes

Associated Types

type DimOf (Yotta u0) 
Instance details

Defined in Data.Units.SI.Prefixes

type DimOf (Yotta u0) = DimOf (MetaPrefix Yotta u0)
IsUnit u => IsUnit (Zepto u) Source # 
Instance details

Defined in Data.Units.SI.Prefixes

Associated Types

type DimOf (Zepto u0) 
Instance details

Defined in Data.Units.SI.Prefixes

type DimOf (Zepto u0) = DimOf (MetaPrefix Zepto u0)
IsUnit u => IsUnit (Zetta u) Source # 
Instance details

Defined in Data.Units.SI.Prefixes

Associated Types

type DimOf (Zetta u0) 
Instance details

Defined in Data.Units.SI.Prefixes

type DimOf (Zetta u0) = DimOf (MetaPrefix Zetta u0)
(IsPrefix p, IsUnit u) => IsUnit (MetaPrefix p u) Source # 
Instance details

Defined in Data.Units.Base.Prefix

Associated Types

type DimOf (MetaPrefix p u) 
Instance details

Defined in Data.Units.Base.Prefix

type DimOf (MetaPrefix p u) = DimOf u
(IsUnit u, IsUnit v) => IsUnit (u .*. v) Source # 
Instance details

Defined in Data.Units.Base.System

Associated Types

type DimOf (u .*. v) 
Instance details

Defined in Data.Units.Base.System

type DimOf (u .*. v)
IsUnit u => IsUnit (u .^. n) Source # 
Instance details

Defined in Data.Units.Base.System

Associated Types

type DimOf (u .^. n) 
Instance details

Defined in Data.Units.Base.System

type DimOf (u .^. n)
IsUnit (Tet b offs) Source # 
Instance details

Defined in Data.Units.NonStd.Frequency

Associated Types

type DimOf (Tet b offs) 
Instance details

Defined in Data.Units.NonStd.Frequency

type DimOf (Tet b offs) = Time .^- 1

Quantity

quantity :: IsUnit u => a -> u a Source #

Make a quantity out of any numerical value (called the magnitude of that quantity)

>>> quantity @(Meter ./. Second) 1
quantity @(Meter .*. Second .^- 1) 1

unQuantity :: IsUnit u => u a -> a Source #

Get the magnitude of a quantity.

unQuantity (quantity u a) === a @

showQuantity :: (ShowUnit u, Show a) => u a -> String Source #

Same as showUnit but for quantities

>>> showQuantity (quantity @(Kilo Meter ./. Second) 1)
"quantity @(Kilo Meter .*. Second.^-1) 1.0"

prettyQuantity :: (ShowUnit u, Show a) => u a -> String Source #

Same as prettyUnit but for quantities

>>> putStrLn $ prettyQuantity (quantity @(Kilo Meter ./. Second) 1)
1 km.s⁻¹

putQuantity :: (Show a, ShowUnit u) => u a -> IO () Source #

Pretty print a quantity.

>>> putQuantity (quantity @(Kilo Meter ./. Second) 1)
1 km.s⁻¹

putInfoQ :: (ShowUnit u, ShowDim (DimOf u), ShowUnit (BaseUnitOf u), Show a) => u a -> IO () Source #

Same as putInfoU but for quantities.

>>> putInfoQ (Newton 4)
Unit:       Newton
 abbr:      N
Dimension:  Mass .*. Length .*. Time.^-2
 abbr:      M⋅L⋅T⁻²
Normalized: Kilo Gram .*. Meter .*. Second.^-2
 abbr:      kg⋅m⋅s⁻²
Magnitude:  4

Unit and dimension constructors

newtype NoDim a Source #

The dimension of non dimensional quantities

Constructors

NoDim a 

Instances

Instances details
Functor NoDim Source # 
Instance details

Defined in Data.Units.Base.System

Methods

fmap :: (a -> b) -> NoDim a -> NoDim b

(<$) :: a -> NoDim b -> NoDim a

IsDim NoDim Source # 
Instance details

Defined in Data.Units.Base.System

Associated Types

type DimToUnit NoDim 
Instance details

Defined in Data.Units.Base.System

ShowDim NoDim Source # 
Instance details

Defined in Data.Units.Base.System

Associated Types

type ShowDimType NoDim 
Instance details

Defined in Data.Units.Base.System

type ShowDimType NoDim = 'Text "NoDim"

Methods

showsDimPrec :: Int -> ShowS Source #

showDim :: String Source #

prettysDimPrec :: Int -> ShowS Source #

prettyDim :: String Source #

Monoid a => Monoid (NoDim a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

mempty :: NoDim a

mappend :: NoDim a -> NoDim a -> NoDim a

mconcat :: [NoDim a] -> NoDim a

Semigroup a => Semigroup (NoDim a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

(<>) :: NoDim a -> NoDim a -> NoDim a

sconcat :: NonEmpty (NoDim a) -> NoDim a

stimes :: Integral b => b -> NoDim a -> NoDim a

Bounded a => Bounded (NoDim a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

minBound :: NoDim a

maxBound :: NoDim a

Enum a => Enum (NoDim a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

succ :: NoDim a -> NoDim a

pred :: NoDim a -> NoDim a

toEnum :: Int -> NoDim a

fromEnum :: NoDim a -> Int

enumFrom :: NoDim a -> [NoDim a]

enumFromThen :: NoDim a -> NoDim a -> [NoDim a]

enumFromTo :: NoDim a -> NoDim a -> [NoDim a]

enumFromThenTo :: NoDim a -> NoDim a -> NoDim a -> [NoDim a]

Floating a => Floating (NoDim a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

pi :: NoDim a

exp :: NoDim a -> NoDim a

log :: NoDim a -> NoDim a

sqrt :: NoDim a -> NoDim a

(**) :: NoDim a -> NoDim a -> NoDim a

logBase :: NoDim a -> NoDim a -> NoDim a

sin :: NoDim a -> NoDim a

cos :: NoDim a -> NoDim a

tan :: NoDim a -> NoDim a

asin :: NoDim a -> NoDim a

acos :: NoDim a -> NoDim a

atan :: NoDim a -> NoDim a

sinh :: NoDim a -> NoDim a

cosh :: NoDim a -> NoDim a

tanh :: NoDim a -> NoDim a

asinh :: NoDim a -> NoDim a

acosh :: NoDim a -> NoDim a

atanh :: NoDim a -> NoDim a

log1p :: NoDim a -> NoDim a

expm1 :: NoDim a -> NoDim a

log1pexp :: NoDim a -> NoDim a

log1mexp :: NoDim a -> NoDim a

RealFloat a => RealFloat (NoDim a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

floatRadix :: NoDim a -> Integer

floatDigits :: NoDim a -> Int

floatRange :: NoDim a -> (Int, Int)

decodeFloat :: NoDim a -> (Integer, Int)

encodeFloat :: Integer -> Int -> NoDim a

exponent :: NoDim a -> Int

significand :: NoDim a -> NoDim a

scaleFloat :: Int -> NoDim a -> NoDim a

isNaN :: NoDim a -> Bool

isInfinite :: NoDim a -> Bool

isDenormalized :: NoDim a -> Bool

isNegativeZero :: NoDim a -> Bool

isIEEE :: NoDim a -> Bool

atan2 :: NoDim a -> NoDim a -> NoDim a

Num a => Num (NoDim a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

(+) :: NoDim a -> NoDim a -> NoDim a

(-) :: NoDim a -> NoDim a -> NoDim a

(*) :: NoDim a -> NoDim a -> NoDim a

negate :: NoDim a -> NoDim a

abs :: NoDim a -> NoDim a

signum :: NoDim a -> NoDim a

fromInteger :: Integer -> NoDim a

Fractional a => Fractional (NoDim a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

(/) :: NoDim a -> NoDim a -> NoDim a

recip :: NoDim a -> NoDim a

fromRational :: Rational -> NoDim a

Real a => Real (NoDim a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

toRational :: NoDim a -> Rational

RealFrac a => RealFrac (NoDim a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

properFraction :: Integral b => NoDim a -> (b, NoDim a)

truncate :: Integral b => NoDim a -> b

round :: Integral b => NoDim a -> b

ceiling :: Integral b => NoDim a -> b

floor :: Integral b => NoDim a -> b

Show a => Show (NoDim a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

showsPrec :: Int -> NoDim a -> ShowS

show :: NoDim a -> String

showList :: [NoDim a] -> ShowS

Eq a => Eq (NoDim a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

(==) :: NoDim a -> NoDim a -> Bool

(/=) :: NoDim a -> NoDim a -> Bool

Ord a => Ord (NoDim a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

compare :: NoDim a -> NoDim a -> Ordering

(<) :: NoDim a -> NoDim a -> Bool

(<=) :: NoDim a -> NoDim a -> Bool

(>) :: NoDim a -> NoDim a -> Bool

(>=) :: NoDim a -> NoDim a -> Bool

max :: NoDim a -> NoDim a -> NoDim a

min :: NoDim a -> NoDim a -> NoDim a

type DimId NoDim Source # 
Instance details

Defined in Data.Units.Base.System

type DimId NoDim = 'Pos 1
type DimToUnit NoDim Source # 
Instance details

Defined in Data.Units.Base.System

type ShowDimType NoDim Source # 
Instance details

Defined in Data.Units.Base.System

type ShowDimType NoDim = 'Text "NoDim"

newtype NoUnit a Source #

A unit that has no dimension.

type MyHertz = NoUnit ./. Second

Constructors

NoUnit a 

Instances

Instances details
Functor NoUnit Source # 
Instance details

Defined in Data.Units.Base.System

Methods

fmap :: (a -> b) -> NoUnit a -> NoUnit b

(<$) :: a -> NoUnit b -> NoUnit a

IsUnit NoUnit Source # 
Instance details

Defined in Data.Units.Base.System

Associated Types

type DimOf NoUnit 
Instance details

Defined in Data.Units.Base.System

Fractional a => ConversionFactor NoUnit a Source # 
Instance details

Defined in Data.Units.Base.Convert

Methods

factor :: a Source #

Fractional a => ConvertibleUnit NoUnit a Source # 
Instance details

Defined in Data.Units.Base.Convert

Floating a => Floating (NoUnit a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

pi :: NoUnit a

exp :: NoUnit a -> NoUnit a

log :: NoUnit a -> NoUnit a

sqrt :: NoUnit a -> NoUnit a

(**) :: NoUnit a -> NoUnit a -> NoUnit a

logBase :: NoUnit a -> NoUnit a -> NoUnit a

sin :: NoUnit a -> NoUnit a

cos :: NoUnit a -> NoUnit a

tan :: NoUnit a -> NoUnit a

asin :: NoUnit a -> NoUnit a

acos :: NoUnit a -> NoUnit a

atan :: NoUnit a -> NoUnit a

sinh :: NoUnit a -> NoUnit a

cosh :: NoUnit a -> NoUnit a

tanh :: NoUnit a -> NoUnit a

asinh :: NoUnit a -> NoUnit a

acosh :: NoUnit a -> NoUnit a

atanh :: NoUnit a -> NoUnit a

log1p :: NoUnit a -> NoUnit a

expm1 :: NoUnit a -> NoUnit a

log1pexp :: NoUnit a -> NoUnit a

log1mexp :: NoUnit a -> NoUnit a

RealFloat a => RealFloat (NoUnit a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

floatRadix :: NoUnit a -> Integer

floatDigits :: NoUnit a -> Int

floatRange :: NoUnit a -> (Int, Int)

decodeFloat :: NoUnit a -> (Integer, Int)

encodeFloat :: Integer -> Int -> NoUnit a

exponent :: NoUnit a -> Int

significand :: NoUnit a -> NoUnit a

scaleFloat :: Int -> NoUnit a -> NoUnit a

isNaN :: NoUnit a -> Bool

isInfinite :: NoUnit a -> Bool

isDenormalized :: NoUnit a -> Bool

isNegativeZero :: NoUnit a -> Bool

isIEEE :: NoUnit a -> Bool

atan2 :: NoUnit a -> NoUnit a -> NoUnit a

Num a => Num (NoUnit a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

(+) :: NoUnit a -> NoUnit a -> NoUnit a

(-) :: NoUnit a -> NoUnit a -> NoUnit a

(*) :: NoUnit a -> NoUnit a -> NoUnit a

negate :: NoUnit a -> NoUnit a

abs :: NoUnit a -> NoUnit a

signum :: NoUnit a -> NoUnit a

fromInteger :: Integer -> NoUnit a

Fractional a => Fractional (NoUnit a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

(/) :: NoUnit a -> NoUnit a -> NoUnit a

recip :: NoUnit a -> NoUnit a

fromRational :: Rational -> NoUnit a

Real a => Real (NoUnit a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

toRational :: NoUnit a -> Rational

RealFrac a => RealFrac (NoUnit a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

properFraction :: Integral b => NoUnit a -> (b, NoUnit a)

truncate :: Integral b => NoUnit a -> b

round :: Integral b => NoUnit a -> b

ceiling :: Integral b => NoUnit a -> b

floor :: Integral b => NoUnit a -> b

Show a => Show (NoUnit a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

showsPrec :: Int -> NoUnit a -> ShowS

show :: NoUnit a -> String

showList :: [NoUnit a] -> ShowS

Eq a => Eq (NoUnit a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

(==) :: NoUnit a -> NoUnit a -> Bool

(/=) :: NoUnit a -> NoUnit a -> Bool

Ord a => Ord (NoUnit a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

compare :: NoUnit a -> NoUnit a -> Ordering

(<) :: NoUnit a -> NoUnit a -> Bool

(<=) :: NoUnit a -> NoUnit a -> Bool

(>) :: NoUnit a -> NoUnit a -> Bool

(>=) :: NoUnit a -> NoUnit a -> Bool

max :: NoUnit a -> NoUnit a -> NoUnit a

min :: NoUnit a -> NoUnit a -> NoUnit a

type DimOf NoUnit Source # 
Instance details

Defined in Data.Units.Base.System

newtype MetaUnit (u :: Unit) a Source #

A unit that can represent any unit.

This can be used with the `deriving via` mechanism to derive some of the unit instances.

Constructors

MetaUnit a 

Instances

Instances details
Functor (MetaUnit u) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

fmap :: (a -> b) -> MetaUnit u a -> MetaUnit u b

(<$) :: a -> MetaUnit u b -> MetaUnit u a

IsUnit u => IsUnit (MetaUnit u) Source # 
Instance details

Defined in Data.Units.Base.System

Associated Types

type DimOf (MetaUnit u) 
Instance details

Defined in Data.Units.Base.System

type DimOf (MetaUnit u) = DimOf u
ShowUnit u => ShowUnit (MetaUnit u) Source # 
Instance details

Defined in Data.Units.Base.System

Associated Types

type ShowUnitType (MetaUnit u) 
Instance details

Defined in Data.Units.Base.System

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

Monoid a => Monoid (MetaUnit u a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

mempty :: MetaUnit u a

mappend :: MetaUnit u a -> MetaUnit u a -> MetaUnit u a

mconcat :: [MetaUnit u a] -> MetaUnit u a

Semigroup a => Semigroup (MetaUnit u a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

(<>) :: MetaUnit u a -> MetaUnit u a -> MetaUnit u a

sconcat :: NonEmpty (MetaUnit u a) -> MetaUnit u a

stimes :: Integral b => b -> MetaUnit u a -> MetaUnit u a

Bounded a => Bounded (MetaUnit u a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

minBound :: MetaUnit u a

maxBound :: MetaUnit u a

Enum a => Enum (MetaUnit u a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

succ :: MetaUnit u a -> MetaUnit u a

pred :: MetaUnit u a -> MetaUnit u a

toEnum :: Int -> MetaUnit u a

fromEnum :: MetaUnit u a -> Int

enumFrom :: MetaUnit u a -> [MetaUnit u a]

enumFromThen :: MetaUnit u a -> MetaUnit u a -> [MetaUnit u a]

enumFromTo :: MetaUnit u a -> MetaUnit u a -> [MetaUnit u a]

enumFromThenTo :: MetaUnit u a -> MetaUnit u a -> MetaUnit u a -> [MetaUnit u a]

Floating a => Floating (MetaUnit u a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

pi :: MetaUnit u a

exp :: MetaUnit u a -> MetaUnit u a

log :: MetaUnit u a -> MetaUnit u a

sqrt :: MetaUnit u a -> MetaUnit u a

(**) :: MetaUnit u a -> MetaUnit u a -> MetaUnit u a

logBase :: MetaUnit u a -> MetaUnit u a -> MetaUnit u a

sin :: MetaUnit u a -> MetaUnit u a

cos :: MetaUnit u a -> MetaUnit u a

tan :: MetaUnit u a -> MetaUnit u a

asin :: MetaUnit u a -> MetaUnit u a

acos :: MetaUnit u a -> MetaUnit u a

atan :: MetaUnit u a -> MetaUnit u a

sinh :: MetaUnit u a -> MetaUnit u a

cosh :: MetaUnit u a -> MetaUnit u a

tanh :: MetaUnit u a -> MetaUnit u a

asinh :: MetaUnit u a -> MetaUnit u a

acosh :: MetaUnit u a -> MetaUnit u a

atanh :: MetaUnit u a -> MetaUnit u a

log1p :: MetaUnit u a -> MetaUnit u a

expm1 :: MetaUnit u a -> MetaUnit u a

log1pexp :: MetaUnit u a -> MetaUnit u a

log1mexp :: MetaUnit u a -> MetaUnit u a

RealFloat a => RealFloat (MetaUnit u a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

floatRadix :: MetaUnit u a -> Integer

floatDigits :: MetaUnit u a -> Int

floatRange :: MetaUnit u a -> (Int, Int)

decodeFloat :: MetaUnit u a -> (Integer, Int)

encodeFloat :: Integer -> Int -> MetaUnit u a

exponent :: MetaUnit u a -> Int

significand :: MetaUnit u a -> MetaUnit u a

scaleFloat :: Int -> MetaUnit u a -> MetaUnit u a

isNaN :: MetaUnit u a -> Bool

isInfinite :: MetaUnit u a -> Bool

isDenormalized :: MetaUnit u a -> Bool

isNegativeZero :: MetaUnit u a -> Bool

isIEEE :: MetaUnit u a -> Bool

atan2 :: MetaUnit u a -> MetaUnit u a -> MetaUnit u a

Num a => Num (MetaUnit u a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

(+) :: MetaUnit u a -> MetaUnit u a -> MetaUnit u a

(-) :: MetaUnit u a -> MetaUnit u a -> MetaUnit u a

(*) :: MetaUnit u a -> MetaUnit u a -> MetaUnit u a

negate :: MetaUnit u a -> MetaUnit u a

abs :: MetaUnit u a -> MetaUnit u a

signum :: MetaUnit u a -> MetaUnit u a

fromInteger :: Integer -> MetaUnit u a

Fractional a => Fractional (MetaUnit u a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

(/) :: MetaUnit u a -> MetaUnit u a -> MetaUnit u a

recip :: MetaUnit u a -> MetaUnit u a

fromRational :: Rational -> MetaUnit u a

Real a => Real (MetaUnit u a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

toRational :: MetaUnit u a -> Rational

RealFrac a => RealFrac (MetaUnit u a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

properFraction :: Integral b => MetaUnit u a -> (b, MetaUnit u a)

truncate :: Integral b => MetaUnit u a -> b

round :: Integral b => MetaUnit u a -> b

ceiling :: Integral b => MetaUnit u a -> b

floor :: Integral b => MetaUnit u a -> b

(Show a, ShowUnit u) => Show (MetaUnit u a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

showsPrec :: Int -> MetaUnit u a -> ShowS

show :: MetaUnit u a -> String

showList :: [MetaUnit u a] -> ShowS

Eq a => Eq (MetaUnit u a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

(==) :: MetaUnit u a -> MetaUnit u a -> Bool

(/=) :: MetaUnit u a -> MetaUnit u a -> Bool

Ord a => Ord (MetaUnit u a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

compare :: MetaUnit u a -> MetaUnit u a -> Ordering

(<) :: MetaUnit u a -> MetaUnit u a -> Bool

(<=) :: MetaUnit u a -> MetaUnit u a -> Bool

(>) :: MetaUnit u a -> MetaUnit u a -> Bool

(>=) :: MetaUnit u a -> MetaUnit u a -> Bool

max :: MetaUnit u a -> MetaUnit u a -> MetaUnit u a

min :: MetaUnit u a -> MetaUnit u a -> MetaUnit u a

type DimOf (MetaUnit u) Source # 
Instance details

Defined in Data.Units.Base.System

type DimOf (MetaUnit u) = DimOf u
type ShowUnitType (MetaUnit u) Source # 
Instance details

Defined in Data.Units.Base.System

newtype ((u :: Unit) .*. (v :: Unit)) a infixr 7 Source #

Multiplication of two units.

type MyForceMoment = Newton .*. Meter

Constructors

MulUnit a 

Instances

Instances details
Functor (u .*. v) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

fmap :: (a -> b) -> (u .*. v) a -> (u .*. v) b

(<$) :: a -> (u .*. v) b -> (u .*. v) a

(IsDim d, IsDim e) => IsDim (d .*. e) Source # 
Instance details

Defined in Data.Units.Base.System

Associated Types

type DimToUnit (d .*. e) 
Instance details

Defined in Data.Units.Base.System

(IsUnit u, IsUnit v) => IsUnit (u .*. v) Source # 
Instance details

Defined in Data.Units.Base.System

Associated Types

type DimOf (u .*. v) 
Instance details

Defined in Data.Units.Base.System

type DimOf (u .*. v)
(ShowDim u, ShowDim v) => ShowDim (u .*. v) Source # 
Instance details

Defined in Data.Units.Base.System

Associated Types

type ShowDimType (u .*. v) 
Instance details

Defined in Data.Units.Base.System

type ShowDimType (u .*. v) = (ShowDimType u ':<>: 'Text "\8901") ':<>: ShowDimType v

Methods

showsDimPrec :: Int -> ShowS Source #

showDim :: String Source #

prettysDimPrec :: Int -> ShowS Source #

prettyDim :: String Source #

(ShowUnit u, ShowUnit v) => ShowUnit (u .*. v) Source # 
Instance details

Defined in Data.Units.Base.System

Associated Types

type ShowUnitType (u .*. v) 
Instance details

Defined in Data.Units.Base.System

type ShowUnitType (u .*. v) = (ShowUnitType u ':<>: 'Text "\8901") ':<>: ShowUnitType v

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

(Num a, ConversionFactor u a, ConversionFactor v a, IsUnit (BaseUnitOf (u .*. v))) => ConversionFactor (u .*. v) a Source # 
Instance details

Defined in Data.Units.Base.Convert

Methods

factor :: a Source #

(Num a, ConversionFactor u a, ConversionFactor v a, IsUnit (BaseUnitOf (u .*. v))) => ConvertibleUnit (u .*. v) a Source # 
Instance details

Defined in Data.Units.Base.Convert

Methods

toBaseUnit :: (u .*. v) a -> BaseUnitOf (u .*. v) a Source #

fromBaseUnit :: BaseUnitOf (u .*. v) a -> (u .*. v) a Source #

Floating a => Floating ((u .*. v) a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

pi :: (u .*. v) a

exp :: (u .*. v) a -> (u .*. v) a

log :: (u .*. v) a -> (u .*. v) a

sqrt :: (u .*. v) a -> (u .*. v) a

(**) :: (u .*. v) a -> (u .*. v) a -> (u .*. v) a

logBase :: (u .*. v) a -> (u .*. v) a -> (u .*. v) a

sin :: (u .*. v) a -> (u .*. v) a

cos :: (u .*. v) a -> (u .*. v) a

tan :: (u .*. v) a -> (u .*. v) a

asin :: (u .*. v) a -> (u .*. v) a

acos :: (u .*. v) a -> (u .*. v) a

atan :: (u .*. v) a -> (u .*. v) a

sinh :: (u .*. v) a -> (u .*. v) a

cosh :: (u .*. v) a -> (u .*. v) a

tanh :: (u .*. v) a -> (u .*. v) a

asinh :: (u .*. v) a -> (u .*. v) a

acosh :: (u .*. v) a -> (u .*. v) a

atanh :: (u .*. v) a -> (u .*. v) a

log1p :: (u .*. v) a -> (u .*. v) a

expm1 :: (u .*. v) a -> (u .*. v) a

log1pexp :: (u .*. v) a -> (u .*. v) a

log1mexp :: (u .*. v) a -> (u .*. v) a

RealFloat a => RealFloat ((u .*. v) a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

floatRadix :: (u .*. v) a -> Integer

floatDigits :: (u .*. v) a -> Int

floatRange :: (u .*. v) a -> (Int, Int)

decodeFloat :: (u .*. v) a -> (Integer, Int)

encodeFloat :: Integer -> Int -> (u .*. v) a

exponent :: (u .*. v) a -> Int

significand :: (u .*. v) a -> (u .*. v) a

scaleFloat :: Int -> (u .*. v) a -> (u .*. v) a

isNaN :: (u .*. v) a -> Bool

isInfinite :: (u .*. v) a -> Bool

isDenormalized :: (u .*. v) a -> Bool

isNegativeZero :: (u .*. v) a -> Bool

isIEEE :: (u .*. v) a -> Bool

atan2 :: (u .*. v) a -> (u .*. v) a -> (u .*. v) a

Num a => Num ((u .*. v) a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

(+) :: (u .*. v) a -> (u .*. v) a -> (u .*. v) a

(-) :: (u .*. v) a -> (u .*. v) a -> (u .*. v) a

(*) :: (u .*. v) a -> (u .*. v) a -> (u .*. v) a

negate :: (u .*. v) a -> (u .*. v) a

abs :: (u .*. v) a -> (u .*. v) a

signum :: (u .*. v) a -> (u .*. v) a

fromInteger :: Integer -> (u .*. v) a

Fractional a => Fractional ((u .*. v) a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

(/) :: (u .*. v) a -> (u .*. v) a -> (u .*. v) a

recip :: (u .*. v) a -> (u .*. v) a

fromRational :: Rational -> (u .*. v) a

Real a => Real ((u .*. v) a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

toRational :: (u .*. v) a -> Rational

RealFrac a => RealFrac ((u .*. v) a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

properFraction :: Integral b => (u .*. v) a -> (b, (u .*. v) a)

truncate :: Integral b => (u .*. v) a -> b

round :: Integral b => (u .*. v) a -> b

ceiling :: Integral b => (u .*. v) a -> b

floor :: Integral b => (u .*. v) a -> b

(Show a, ShowUnit u, ShowUnit v) => Show ((u .*. v) a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

showsPrec :: Int -> (u .*. v) a -> ShowS

show :: (u .*. v) a -> String

showList :: [(u .*. v) a] -> ShowS

Eq a => Eq ((u .*. v) a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

(==) :: (u .*. v) a -> (u .*. v) a -> Bool

(/=) :: (u .*. v) a -> (u .*. v) a -> Bool

Ord a => Ord ((u .*. v) a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

compare :: (u .*. v) a -> (u .*. v) a -> Ordering

(<) :: (u .*. v) a -> (u .*. v) a -> Bool

(<=) :: (u .*. v) a -> (u .*. v) a -> Bool

(>) :: (u .*. v) a -> (u .*. v) a -> Bool

(>=) :: (u .*. v) a -> (u .*. v) a -> Bool

max :: (u .*. v) a -> (u .*. v) a -> (u .*. v) a

min :: (u .*. v) a -> (u .*. v) a -> (u .*. v) a

type DimOf (u .*. v) Source # 
Instance details

Defined in Data.Units.Base.System

type DimOf (u .*. v)
type DimToUnit (d .*. e) Source # 
Instance details

Defined in Data.Units.Base.System

type ShowDimType (u .*. v) Source # 
Instance details

Defined in Data.Units.Base.System

type ShowDimType (u .*. v) = (ShowDimType u ':<>: 'Text "\8901") ':<>: ShowDimType v
type ShowUnitType (u .*. v) Source # 
Instance details

Defined in Data.Units.Base.System

type ShowUnitType (u .*. v) = (ShowUnitType u ':<>: 'Text "\8901") ':<>: ShowUnitType v

newtype ((u :: Unit) .^. (n :: ZZ)) a infix 8 Source #

Exponentiation of a unit

type Acceleration = Meter .*. Second .^. Neg 2

Constructors

PowUnit a 

Instances

Instances details
Functor (u .^. n) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

fmap :: (a -> b) -> (u .^. n) a -> (u .^. n) b

(<$) :: a -> (u .^. n) b -> (u .^. n) a

IsDim d => IsDim (d .^. n) Source # 
Instance details

Defined in Data.Units.Base.System

Associated Types

type DimToUnit (d .^. n) 
Instance details

Defined in Data.Units.Base.System

type DimToUnit (d .^. n) = DimToUnit d .^. n
IsUnit u => IsUnit (u .^. n) Source # 
Instance details

Defined in Data.Units.Base.System

Associated Types

type DimOf (u .^. n) 
Instance details

Defined in Data.Units.Base.System

type DimOf (u .^. n)
(ShowDim u, KnownInt n) => ShowDim (u .^. n) Source # 
Instance details

Defined in Data.Units.Base.System

Associated Types

type ShowDimType (u .^. n) 
Instance details

Defined in Data.Units.Base.System

type ShowDimType (u .^. n)

Methods

showsDimPrec :: Int -> ShowS Source #

showDim :: String Source #

prettysDimPrec :: Int -> ShowS Source #

prettyDim :: String Source #

(ShowUnit u, KnownInt n) => ShowUnit (u .^. n) Source # 
Instance details

Defined in Data.Units.Base.System

Associated Types

type ShowUnitType (u .^. n) 
Instance details

Defined in Data.Units.Base.System

type ShowUnitType (u .^. n)

Methods

showsUnitPrec :: Int -> ShowS Source #

showUnit :: String Source #

prettysUnitPrec :: Int -> ShowS Source #

prettyUnit :: String Source #

(ConversionFactor u a, IsUnit (BaseUnitOf (u .^. n)), KnownInt n) => ConversionFactor (u .^. n) a Source # 
Instance details

Defined in Data.Units.Base.Convert

Methods

factor :: a Source #

(ConversionFactor u a, IsUnit (BaseUnitOf (u .^. n)), KnownInt n) => ConvertibleUnit (u .^. n) a Source # 
Instance details

Defined in Data.Units.Base.Convert

Methods

toBaseUnit :: (u .^. n) a -> BaseUnitOf (u .^. n) a Source #

fromBaseUnit :: BaseUnitOf (u .^. n) a -> (u .^. n) a Source #

Floating a => Floating ((u .^. n) a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

pi :: (u .^. n) a

exp :: (u .^. n) a -> (u .^. n) a

log :: (u .^. n) a -> (u .^. n) a

sqrt :: (u .^. n) a -> (u .^. n) a

(**) :: (u .^. n) a -> (u .^. n) a -> (u .^. n) a

logBase :: (u .^. n) a -> (u .^. n) a -> (u .^. n) a

sin :: (u .^. n) a -> (u .^. n) a

cos :: (u .^. n) a -> (u .^. n) a

tan :: (u .^. n) a -> (u .^. n) a

asin :: (u .^. n) a -> (u .^. n) a

acos :: (u .^. n) a -> (u .^. n) a

atan :: (u .^. n) a -> (u .^. n) a

sinh :: (u .^. n) a -> (u .^. n) a

cosh :: (u .^. n) a -> (u .^. n) a

tanh :: (u .^. n) a -> (u .^. n) a

asinh :: (u .^. n) a -> (u .^. n) a

acosh :: (u .^. n) a -> (u .^. n) a

atanh :: (u .^. n) a -> (u .^. n) a

log1p :: (u .^. n) a -> (u .^. n) a

expm1 :: (u .^. n) a -> (u .^. n) a

log1pexp :: (u .^. n) a -> (u .^. n) a

log1mexp :: (u .^. n) a -> (u .^. n) a

RealFloat a => RealFloat ((u .^. n) a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

floatRadix :: (u .^. n) a -> Integer

floatDigits :: (u .^. n) a -> Int

floatRange :: (u .^. n) a -> (Int, Int)

decodeFloat :: (u .^. n) a -> (Integer, Int)

encodeFloat :: Integer -> Int -> (u .^. n) a

exponent :: (u .^. n) a -> Int

significand :: (u .^. n) a -> (u .^. n) a

scaleFloat :: Int -> (u .^. n) a -> (u .^. n) a

isNaN :: (u .^. n) a -> Bool

isInfinite :: (u .^. n) a -> Bool

isDenormalized :: (u .^. n) a -> Bool

isNegativeZero :: (u .^. n) a -> Bool

isIEEE :: (u .^. n) a -> Bool

atan2 :: (u .^. n) a -> (u .^. n) a -> (u .^. n) a

Num a => Num ((u .^. n) a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

(+) :: (u .^. n) a -> (u .^. n) a -> (u .^. n) a

(-) :: (u .^. n) a -> (u .^. n) a -> (u .^. n) a

(*) :: (u .^. n) a -> (u .^. n) a -> (u .^. n) a

negate :: (u .^. n) a -> (u .^. n) a

abs :: (u .^. n) a -> (u .^. n) a

signum :: (u .^. n) a -> (u .^. n) a

fromInteger :: Integer -> (u .^. n) a

Fractional a => Fractional ((u .^. n) a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

(/) :: (u .^. n) a -> (u .^. n) a -> (u .^. n) a

recip :: (u .^. n) a -> (u .^. n) a

fromRational :: Rational -> (u .^. n) a

Real a => Real ((u .^. n) a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

toRational :: (u .^. n) a -> Rational

RealFrac a => RealFrac ((u .^. n) a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

properFraction :: Integral b => (u .^. n) a -> (b, (u .^. n) a)

truncate :: Integral b => (u .^. n) a -> b

round :: Integral b => (u .^. n) a -> b

ceiling :: Integral b => (u .^. n) a -> b

floor :: Integral b => (u .^. n) a -> b

(Show a, ShowUnit u, KnownInt n) => Show ((u .^. n) a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

showsPrec :: Int -> (u .^. n) a -> ShowS

show :: (u .^. n) a -> String

showList :: [(u .^. n) a] -> ShowS

Eq a => Eq ((u .^. n) a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

(==) :: (u .^. n) a -> (u .^. n) a -> Bool

(/=) :: (u .^. n) a -> (u .^. n) a -> Bool

Ord a => Ord ((u .^. n) a) Source # 
Instance details

Defined in Data.Units.Base.System

Methods

compare :: (u .^. n) a -> (u .^. n) a -> Ordering

(<) :: (u .^. n) a -> (u .^. n) a -> Bool

(<=) :: (u .^. n) a -> (u .^. n) a -> Bool

(>) :: (u .^. n) a -> (u .^. n) a -> Bool

(>=) :: (u .^. n) a -> (u .^. n) a -> Bool

max :: (u .^. n) a -> (u .^. n) a -> (u .^. n) a

min :: (u .^. n) a -> (u .^. n) a -> (u .^. n) a

type DimId (d .^. n) Source # 
Instance details

Defined in Data.Units.Base.System

type DimId (d .^. n) = DimId d
type DimOf (u .^. n) Source # 
Instance details

Defined in Data.Units.Base.System

type DimOf (u .^. n)
type DimToUnit (d .^. n) Source # 
Instance details

Defined in Data.Units.Base.System

type DimToUnit (d .^. n) = DimToUnit d .^. n
type ShowDimType (u .^. n) Source # 
Instance details

Defined in Data.Units.Base.System

type ShowDimType (u .^. n)
type ShowUnitType (u .^. n) Source # 
Instance details

Defined in Data.Units.Base.System

type ShowUnitType (u .^. n)

type (.^+) (a :: Unit) (b :: Nat) = a .^. 'Pos b infix 8 Source #

Positive exponentiation of a unit

type Area = Meter .^+ 2

type (.^-) (a :: Unit) (b :: Nat) = a .^. 'Neg b infix 8 Source #

Negative exponentiation of a unit

type Hertz = Second .^- 1

Unit normalization

type BaseUnitOf (u :: Unit) = DimToUnit (DimOf u) Source #

Normalizes a unit by converting it to a product of exponentiations of base units.

type NormalizeUnitL (u :: Type -> Type) = NormalizeFlatUnitL (Flatten u) Source #

Tries to normalize a unit without converting to base units.

>>> :kind! NormalizeUnitR (Minute .*. Second)
Minute .^. Pos 2

type NormalizeUnitR (u :: Type -> Type) = NormalizeFlatUnitR (Flatten u) Source #

Tries to normalize a unit without converting to base units. When two units have the same dimension, they will be collapsed to an exponentiation right most unit.

>>> :kind! NormalizeUnitR (Minute .*. Second)
Second .^. Pos 2

Normalization operators

Multiplication

type (.*~) (u :: Unit) (v :: Unit) = NormalizeUnitL (u .*. v) infixr 7 Source #

Multiplies two units and use left weak normalization.

type (~*.) (u :: Unit) (v :: Unit) = NormalizeUnitR (u .*. v) infixr 7 Source #

Same as (~*.) but with priority to right most units

type (~*~) (u :: Unit) (v :: Unit) = BaseUnitOf (u .*. v) infixr 7 Source #

Multiplies two units and normalizes the result.

Division

type family (u :: Unit) ./. (v :: Unit) :: Unit where ... infix 6 Source #

Division of two units.

type MySpeed a = (Meter ./. Second) a
type MyMolarEntropy a = (Joule ./. Mole .*. Kelvin) a

Notice that multiplication has priority over division.

Equations

u ./. v = u .*. InverseUnit v 

type (./~) (u :: Unit) (v :: Unit) = NormalizeUnitL (u ./. v) infixr 6 Source #

Divides two units and use left weak normalization.

type (~/.) (u :: Unit) (v :: Unit) = NormalizeUnitR (u ./. v) infixr 7 Source #

Same as (~/.) but with priority to right most units

type (~/~) (u :: Unit) (v :: Unit) = BaseUnitOf (u ./. v) infixr 6 Source #

Divides two units and normalizes the result.

Exponentiation

type (~^.) (u :: Unit) (n :: ZZ) = NormalizeUnitR (u .^. n) infix 8 Source #

Same as (.^~) but with priority to right most units

type (.^~) (u :: Unit) (n :: ZZ) = NormalizeUnitL (u .^. n) infixr 8 Source #

Exponentiates a unit and use left weak normalization.

type (~^~) (u :: Unit) (n :: ZZ) = BaseUnitOf (u .^. n) infixr 8 Source #

Exponentiates a unit and normalizes the result.