Copyright | (c) Michal Konecny |
---|---|
License | BSD3 |
Maintainer | mikkonecny@gmail.com |
Stability | experimental |
Portability | portable |
Safe Haskell | None |
Language | Haskell98 |
A type of numeric errors to be collected.
- 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
- 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 #
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 #
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.