| Copyright | (c) Michal Konecny |
|---|---|
| License | BSD3 |
| Maintainer | mikkonecny@gmail.com |
| Stability | experimental |
| Portability | portable |
| Safe Haskell | None |
| Language | Haskell2010 |
Numeric.CollectErrors
Description
A type of numeric errors to be collected.
Synopsis
- data ErrorCertaintyLevel
- data NumError
- type NumErrors = [(ErrorCertaintyLevel, NumError)]
- sample_NumErrors :: Maybe [(ErrorCertaintyLevel, NumError)]
- type CN = CollectErrors NumErrors
- hasCertainError :: CanTestErrorsCertain es => es -> Bool
- hasCertainErrorCN :: CN v -> Bool
- hasError :: CanTestErrorsPresent es => es -> Bool
- hasErrorCN :: CN v -> Bool
- noValueCN :: NumErrors -> CN v
- noValueNumErrorCertainCN :: NumError -> CN v
- noValueNumErrorPotentialCN :: NumError -> CN v
- getMaybeValueCN :: CN v -> Maybe v
- getErrorsCN :: CN v -> NumErrors
- prependErrorsCN :: NumErrors -> CN v -> CN v
- type CanEnsureCN = CanEnsureCE NumErrors
- type EnsureCN a = EnsureCE NumErrors a
- type EnsureNoCN a = EnsureNoCE NumErrors a
- ensureCN :: CanEnsureCN v => v -> EnsureCN v
- deEnsureCN :: CanEnsureCN v => EnsureCN v -> Either NumErrors v
- ensureNoCN :: CanEnsureCN v => v -> (Maybe (EnsureNoCN v), NumErrors)
- noValueECN :: CanEnsureCN v => Maybe v -> NumErrors -> EnsureCN v
- prependErrorsECN :: CanEnsureCN v => Maybe v -> NumErrors -> EnsureCN v -> EnsureCN v
- noValueNumErrorCertainECN :: CanEnsureCN v => Maybe v -> NumError -> EnsureCN v
- noValueNumErrorPotentialECN :: CanEnsureCN v => Maybe v -> NumError -> EnsureCN v
- type CanExtractCN f = CanExtractCE NumErrors f
- extractCN :: (CanEnsureCN c, CanExtractCN f) => f c -> CN (f (EnsureNoCN c))
- cn :: CanEnsureCN v => v -> EnsureCN v
- deCN :: CanEnsureCN v => EnsureCN v -> Either NumErrors v
- (~!) :: (CanEnsureCN v, Show v) => v -> EnsureNoCN v
Type of numeric errors
data ErrorCertaintyLevel Source #
Constructors
| ErrorCertain | |
| ErrorPotential |
Instances
Constructors
| DivByZero | |
| OutOfRange String | |
| NumError String |
Instances
| Eq NumError Source # | |
| Show NumError Source # | |
| CanTestErrorsPresent NumErrors Source # | |
| CanTestErrorsCertain NumErrors Source # | |
Defined in Numeric.CollectErrors Methods hasCertainError :: NumErrors -> Bool Source # | |
| OrderedCertainlyRing (CN Integer) Source # | |
Defined in Numeric.MixedTypes.Ring | |
| OrderedCertainlyRing (CN Rational) Source # | |
Defined in Numeric.MixedTypes.Ring | |
| OrderedRing (CN Integer) Source # | |
Defined in Numeric.MixedTypes.Ring | |
| OrderedRing (CN Rational) Source # | |
Defined in Numeric.MixedTypes.Ring | |
| Ring (CN Integer) Source # | |
Defined in Numeric.MixedTypes.Ring | |
| Ring (CN Rational) Source # | |
Defined in Numeric.MixedTypes.Ring | |
| OrderedCertainlyField (CN Rational) Source # | |
Defined in Numeric.MixedTypes.Field | |
| OrderedField (CN Rational) Source # | |
Defined in Numeric.MixedTypes.Field | |
| Field (CN Rational) Source # | |
Defined in Numeric.MixedTypes.Field | |
type NumErrors = [(ErrorCertaintyLevel, NumError)] Source #
Specialisation to numeric errors
type CN = CollectErrors NumErrors Source #
hasCertainError :: CanTestErrorsCertain es => es -> Bool Source #
hasCertainErrorCN :: CN v -> Bool Source #
hasError :: CanTestErrorsPresent es => es -> Bool Source #
hasErrorCN :: CN v -> Bool Source #
noValueNumErrorCertainCN :: NumError -> CN v Source #
Construct an empty wrapper indicating that given error has certainly occurred.
noValueNumErrorPotentialCN :: NumError -> CN v Source #
Construct an empty wrapper indicating that given error may have occurred.
getMaybeValueCN :: CN v -> Maybe v Source #
getErrorsCN :: CN v -> NumErrors Source #
type CanEnsureCN = CanEnsureCE NumErrors Source #
type EnsureNoCN a = EnsureNoCE NumErrors a Source #
ensureCN :: CanEnsureCN v => v -> EnsureCN v Source #
Translate a value of a type a
to a value of a type CollectNumErrors a except when a
already is a CollectNumErrors type, in which case the value is left as is.
deEnsureCN :: CanEnsureCN v => EnsureCN v -> Either NumErrors v Source #
Translate a value of a type EnsureCN es a to a,
throwing an exception if there was an error.
If a is a CollectNumErrors type, then this is just an identity.
ensureNoCN :: CanEnsureCN v => v -> (Maybe (EnsureNoCN v), NumErrors) Source #
Translate a value of a type a
to a value of a type CollectNumErrors a except when a
already is a CollectNumErrors type, in which case the value is left as is.
noValueECN :: CanEnsureCN v => Maybe v -> NumErrors -> EnsureCN v Source #
prependErrorsECN :: CanEnsureCN v => Maybe v -> NumErrors -> EnsureCN v -> EnsureCN v Source #
noValueNumErrorCertainECN :: CanEnsureCN v => Maybe v -> NumError -> EnsureCN v Source #
Construct an empty wrapper indicating that given error has certainly occurred.
noValueNumErrorPotentialECN :: CanEnsureCN v => Maybe v -> NumError -> EnsureCN v Source #
Construct an empty wrapper indicating that given error may have occurred.
type CanExtractCN f = CanExtractCE NumErrors f Source #
extractCN :: (CanEnsureCN c, CanExtractCN f) => f c -> CN (f (EnsureNoCN c)) Source #
More compact synonyms
cn :: CanEnsureCN v => v -> EnsureCN v Source #
Wrap a value in the CollectNumErrors wrapper.
deCN :: CanEnsureCN v => EnsureCN v -> Either NumErrors v Source #
An unsafe way to get a value out of the CollectNumErrors wrapper.
(~!) :: (CanEnsureCN v, Show v) => v -> EnsureNoCN v Source #
An unsafe way to get a value out of the CollectNumErrors wrapper.