| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell98 |
Data.Checked.Strict
Description
A version of Checked that requires client code to provide
a non-bottom value of the property index type to use trust*
functions.
Synopsis
- data Checked p v
- trustThat :: p -> v -> Checked p v
- trustMap :: p -> (v -> v) -> Checked p v -> Checked p v
- checked :: Checked p v -> v
- class Property p v where
- holds :: p -> v -> Bool
- maybeHolds :: Property p v => p -> v -> Maybe v
- check :: forall p v. Property p v => v -> Maybe (Checked p v)
- relax :: Checked p v -> Checked p v
Documentation
Wrapper-evidence for property p.
trustThat :: p -> v -> Checked p v Source #
Use when the property can be deduced without a runtime check.
Note that p is evaluated to WHNF, so you can't use undefined.
trustMap :: p -> (v -> v) -> Checked p v -> Checked p v Source #
Apply a fuction that preserves the property to the checked value.
Note that p is evaluated to WHNF, so you can't use undefined.
maybeHolds :: Property p v => p -> v -> Maybe v Source #
Return Just v if p holds and Nothing overwise.