packages feed

data-checked 0.1 → 0.2

raw patch · 2 files changed

+23/−4 lines, 2 filesdep +deepseqPVP ok

version bump matches the API change (PVP)

Dependencies added: deepseq

API changes (from Hackage documentation)

+ Data.Checked: instance NFData v => NFData (Checked p v)
+ Data.Checked: instance Typeable2 Checked
+ Data.Checked: trustMap :: (v -> v) -> Checked p v -> Checked p v
+ Data.Checked: trustThat :: p -> v -> Checked p v

Files

data-checked.cabal view
@@ -1,5 +1,5 @@ Name: data-checked-Version: 0.1+Version: 0.2 Category: Data Stability: experimental Synopsis: Type-indexed runtime-checked properties @@ -24,8 +24,8 @@   Location: https://github.com/mvv/data-checked.git  Library-  Build-Depends:-    base >= 4 && < 5+  Build-Depends: base >= 4 && < 5+               , deepseq >= 1.2   Hs-Source-Dirs: src   GHC-Options: -Wall   Exposed-Modules:
src/Data/Checked.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE UnicodeSyntax #-}+{-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE MultiParamTypeClasses #-} @@ -6,19 +7,37 @@ module Data.Checked   ( Checked   , trustMe+  , trustThat+  , trustMap   , checked   , Property(..)   , maybeHolds   , check   ) where +import Data.Typeable (Typeable)+import Control.DeepSeq (NFData(..))+ -- | Wrapper-evidence for property /p/.-newtype Checked p v = Checked v+newtype Checked p v = Checked v deriving Typeable +instance NFData v ⇒ NFData (Checked p v) where+  rnf (Checked v) = rnf v+ -- | Use when the property can be deduced without a runtime check. trustMe ∷ v → Checked p v trustMe = Checked {-# INLINE trustMe #-}++-- | Use when the property can be deduced without a runtime check.+trustThat ∷ p → v → Checked p v+trustThat _ = Checked+{-# INLINE trustThat #-}++-- | Apply a fuction that preserves the property to the checked value.+trustMap ∷ (v → v) → Checked p v → Checked p v+trustMap f (Checked v) = Checked (f v)+{-# INLINE trustMap #-}  -- | Unwrap the checked value. checked ∷ Checked p v → v