Physical expressions track the operations made on physical values so we are able to give detailed information on how to resolve unit violations.
- data T a v = Cons (Term a v) v
- data Term a v
- fromValue :: v -> T a v
- makeLine :: Int -> String -> String
- showUnitError :: Show v => Bool -> Int -> v -> T a v -> String
- lift :: (v -> v) -> T a v -> T a v
- fromScalar :: (Show v, C a v) => a -> T a v
- scalarMap :: (Show v, C a v) => (a -> a) -> T a v -> T a v
- scalarMap2 :: (Show v, C a v) => (a -> a -> a) -> T a v -> T a v -> T a v
A value of type
T stores information on how to resolve unit violations.
The main application of the module are certainly
Number.Physical type instances
but in principle it can also be applied to other occasionally scalar types.