Portability | portable |
---|---|
Stability | unstable |
Maintainer | claude@mathr.co.uk |
Safe Haskell | None |
Classes for types with precision represented by a type-level natural number, and variable precision types.
Note that performance may be (even) slow(er) with some versions of the type-level-natural-number package.
- class HasPrecision t where
- precisionOf :: NaturalNumber p => t p -> p
- precision :: (NaturalNumber p, HasPrecision t) => t p -> Word
- atPrecision :: (NaturalNumber p, HasPrecision t) => t p -> p -> t p
- atPrecisionOf :: (HasPrecision t, HasPrecision s) => t p -> s p -> t p
- (.@) :: (HasPrecision t, HasPrecision s) => t p -> s p -> t p
- class HasPrecision t => VariablePrecision t where
- adjustPrecision :: (NaturalNumber p, NaturalNumber q) => t p -> t q
- auto :: (VariablePrecision t, NaturalNumber p, NaturalNumber q) => t p -> t q
- withPrecision :: (NaturalNumber p, NaturalNumber q, VariablePrecision t) => t p -> q -> t q
- withPrecisionOf :: (NaturalNumber p, NaturalNumber q, VariablePrecision t, HasPrecision s) => t p -> s q -> t q
- (.@~) :: (NaturalNumber p, NaturalNumber q, VariablePrecision t, HasPrecision s) => t p -> s q -> t q
- module TypeLevel.NaturalNumber
- module Data.Word
Documentation
class HasPrecision t whereSource
A class for types with precision. The methods must not evaluate their arguments, and their results must not be evaluated. Minimal complete definition: (none).
precisionOf :: NaturalNumber p => t p -> pSource
precision :: (NaturalNumber p, HasPrecision t) => t p -> WordSource
Much like naturalNumberAsInt
combined with precisionOf
.
atPrecision :: (NaturalNumber p, HasPrecision t) => t p -> p -> t pSource
Much like const
with a restricted type.
atPrecisionOf :: (HasPrecision t, HasPrecision s) => t p -> s p -> t pSource
(.@) :: (HasPrecision t, HasPrecision s) => t p -> s p -> t pSource
An alias for atPrecisionOf
.
Precedence between <
and +
.
class HasPrecision t => VariablePrecision t whereSource
A class for types with adjustable precision.
Minimal complete definition: adjustPrecision
.
adjustPrecision :: (NaturalNumber p, NaturalNumber q) => t p -> t qSource
Adjust the precision of a value preserving as much accuracy as possible.
auto :: (VariablePrecision t, NaturalNumber p, NaturalNumber q) => t p -> t qSource
Synonym for adjustPrecision
.
withPrecision :: (NaturalNumber p, NaturalNumber q, VariablePrecision t) => t p -> q -> t qSource
Much like adjustPrecision
combined with atPrecision
.
withPrecisionOf :: (NaturalNumber p, NaturalNumber q, VariablePrecision t, HasPrecision s) => t p -> s q -> t qSource
Much like withPrecision
combined with precisionOf
.
Precedence between <
and +
.
(.@~) :: (NaturalNumber p, NaturalNumber q, VariablePrecision t, HasPrecision s) => t p -> s q -> t qSource
An alias for withPrecisionOf
.
Precedence between <
and +
.
module TypeLevel.NaturalNumber
module Data.Word