Converts a dimension to a list of 7 integers, representing the exponent associated with each of the 7 SI base dimensions in the standard order.
Moduledimensional-1.6.2Haskell2010
Numeric.Units.Dimensional.Dimensions
Provides both term-level and type-level representations for physical dimensions in a single import for convenience.
Presuming that users intend to work primarily with type level dimensions, this module hides arithmetic operators over term level dimensions and aliases for the base term-level dimensions to avoid namespace pollution. These features are available directly from Numeric.Units.Dimensional.Dimensions.TermLevel if desired.
- 2 types
- 2 classes
- 5 values
- Packagedimensional-1.6.2
- Exports9
- LanguageHaskell2010
- LicenceBSD-3-Clause
- SourceDimensions.hs
The dimension of dimensionless values.
Determines if a value that has a DynamicDimension in fact has any valid dimension at all.
Determines if a value that has a DynamicDimension is compatible with a specified Dimension'.
Combines two DynamicDimensions, determining the DynamicDimension of a quantity that must match both inputs.
This is the lattice meet operation for DynamicDimension.
A physical dimension, encoded as 7 integers, representing a factorization of the dimension into the 7 SI base dimensions. By convention they are stored in the same order as in the Dimension data kind.
Instances11Eq, Data, Ord, Show, Generic, Semigroup, …
Eq Dimension'Defined in dimensional-1.6.2 · Numeric.Units.Dimensional.Dimensions.TermLevelData Dimension'Defined in dimensional-1.6.2 · Numeric.Units.Dimensional.Dimensions.TermLevelOrd Dimension'Defined in dimensional-1.6.2 · Numeric.Units.Dimensional.Dimensions.TermLevelShow Dimension'Defined in dimensional-1.6.2 · Numeric.Units.Dimensional.Dimensions.TermLevelGeneric Dimension'Defined in dimensional-1.6.2 · Numeric.Units.Dimensional.Dimensions.TermLevelSemigroup Dimension'Defined in dimensional-1.6.2 · Numeric.Units.Dimensional.Dimensions.TermLevelMonoid Dimension'Defined in dimensional-1.6.2 · Numeric.Units.Dimensional.Dimensions.TermLevelThe monoid of dimensions under multiplication.
NFData Dimension'Defined in dimensional-1.6.2 · Numeric.Units.Dimensional.Dimensions.TermLevelHasDimension Dimension'Defined in dimensional-1.6.2 · Numeric.Units.Dimensional.Dimensions.TermLevelHasDynamicDimension Dimension'Defined in dimensional-1.6.2 · Numeric.Units.Dimensional.Dimensions.TermLeveltype Rep Dimension' = D1 ('MetaDataDefined in dimensional-1.6.2 · Numeric.Units.Dimensional.Dimensions.TermLevel"Dimension'"
"Numeric.Units.Dimensional.Dimensions.TermLevel"
"dimensional-1.6.2-G5vjgsEZ91vFsQYtbpfFVm"
'False) (C1 ('MetaCons"Dim'"
'PrefixI 'False) ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Int) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Int) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Int))) :*: ((S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Int) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Int)) :*: (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Int) :*: S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'SourceStrict 'DecidedUnpack) (Rec0 Int)))))
The dimension of a dynamic value, which may not have any dimension at all.
Constructors
NoDimensionThe value has no valid dimension.
SomeDimension Dimension'The value has the given dimension.
AnyDimensionThe value may be interpreted as having any dimension.
Instances8Eq, Data, Ord, Show, Generic, NFData, …
Eq DynamicDimensionDefined in dimensional-1.6.2 · Numeric.Units.Dimensional.Dimensions.TermLevelData DynamicDimensionDefined in dimensional-1.6.2 · Numeric.Units.Dimensional.Dimensions.TermLevelOrd DynamicDimensionDefined in dimensional-1.6.2 · Numeric.Units.Dimensional.Dimensions.TermLevelShow DynamicDimensionDefined in dimensional-1.6.2 · Numeric.Units.Dimensional.Dimensions.TermLevelGeneric DynamicDimensionDefined in dimensional-1.6.2 · Numeric.Units.Dimensional.Dimensions.TermLevelNFData DynamicDimensionDefined in dimensional-1.6.2 · Numeric.Units.Dimensional.Dimensions.TermLevelHasDynamicDimension DynamicDimensionDefined in dimensional-1.6.2 · Numeric.Units.Dimensional.Dimensions.TermLeveltype Rep DynamicDimension = D1 ('MetaDataDefined in dimensional-1.6.2 · Numeric.Units.Dimensional.Dimensions.TermLevel"DynamicDimension"
"Numeric.Units.Dimensional.Dimensions.TermLevel"
"dimensional-1.6.2-G5vjgsEZ91vFsQYtbpfFVm"
'False) (C1 ('MetaCons"NoDimension"
'PrefixI 'False) U1 :+: (C1 ('MetaCons"SomeDimension"
'PrefixI 'False) (S1 ('MetaSel 'Nothing 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Dimension')) :+: C1 ('MetaCons"AnyDimension"
'PrefixI 'False) U1))
Dimensional values inhabit this class, which allows access to a term-level representation of their dimension.
Methods
dimension :: a -> Dimension'Obtains a term-level representation of a value's dimension.
Instances5HasDimension
HasDimension Dimension'Defined in dimensional-1.6.2 · Numeric.Units.Dimensional.Dimensions.TermLevelHasDimension AnyUnitDefined in dimensional-1.6.2 · Numeric.Units.Dimensional.DynamicHasDimension (AnyQuantity a)Defined in dimensional-1.6.2 · Numeric.Units.Dimensional.Dynamic(KnownTypeInt l, KnownTypeInt m, KnownTypeInt t, KnownTypeInt i, KnownTypeInt th, KnownTypeInt n, KnownTypeInt j) => HasDimension (Proxy ('Dim l m t i th n j))Defined in dimensional-1.6.2 · Numeric.Units.Dimensional.Dimensions.TypeLevelKnownDimension d => HasDimension (Dimensional v d a)Defined in dimensional-1.6.2 · Numeric.Units.Dimensional.Internal
Dimensional values, or those that are only possibly dimensional, inhabit this class, which allows access to a term-level representation of their dimension.
Methods
dynamicDimension :: a -> DynamicDimensionGets the DynamicDimension of a dynamic dimensional value, which may be NoDimension if it does not represent a dimensional value of any
Dimension.A default implementation is available for types that are also in the HasDimension typeclass.
Instances7HasDynamicDimension, …
HasDynamicDimension Dimension'Defined in dimensional-1.6.2 · Numeric.Units.Dimensional.Dimensions.TermLevelHasDynamicDimension DynamicDimensionDefined in dimensional-1.6.2 · Numeric.Units.Dimensional.Dimensions.TermLevelHasDynamicDimension AnyUnitDefined in dimensional-1.6.2 · Numeric.Units.Dimensional.DynamicHasDynamicDimension (AnyQuantity a)Defined in dimensional-1.6.2 · Numeric.Units.Dimensional.DynamicHasDynamicDimension (DynQuantity a)Defined in dimensional-1.6.2 · Numeric.Units.Dimensional.Dynamic(KnownTypeInt l, KnownTypeInt m, KnownTypeInt t, KnownTypeInt i, KnownTypeInt th, KnownTypeInt n, KnownTypeInt j) => HasDynamicDimension (Proxy ('Dim l m t i th n j))Defined in dimensional-1.6.2 · Numeric.Units.Dimensional.Dimensions.TypeLevelKnownDimension d => HasDynamicDimension (Dimensional v d a)Defined in dimensional-1.6.2 · Numeric.Units.Dimensional.Internal