packages feed

non-empty 0.3.4 → 0.3.5

raw patch · 4 files changed

+34/−19 lines, 4 filesdep ~containersdep ~deepseq

Dependency ranges changed: containers, deepseq

Files

non-empty.cabal view
@@ -1,6 +1,6 @@ Cabal-Version:    2.2 Name:             non-empty-Version:          0.3.4+Version:          0.3.5 License:          BSD-3-Clause License-File:     LICENSE Author:           Henning Thielemann <haskell@henning-thielemann.de>@@ -68,7 +68,7 @@   Makefile  Source-Repository this-  Tag:         0.3.4+  Tag:         0.3.5   Type:        darcs   Location:    https://hub.darcs.net/thielema/non-empty/ 
src/Data/NonEmpty.hs view
@@ -33,6 +33,7 @@    scanl, scanr,    tails, inits, initsRev,    removeEach,+   takeUntil,    partitionEithersLeft,    partitionEithersRight,    ) where
src/Data/NonEmptyPrivate.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE FlexibleContexts #-} module Data.NonEmptyPrivate where  import qualified Data.NonEmpty.Foldable as FoldU@@ -46,6 +47,7 @@ >>> import Data.Tuple.HT (swap) >>> import Data.Maybe (mapMaybe) >>> import Control.Applicative (liftA2)+>>> import Control.Functor.HT (void) >>> import qualified Test.QuickCheck as QC >>> >>> forRange :: (QC.Testable test) => ((Char,Char) -> test) -> QC.Property@@ -598,6 +600,9 @@ removeEach :: (Traversable f) => T f a -> T f (a, f a) removeEach xs  =  mapWithIndex (\n _ -> removeAt n xs) 0 xs +{- |+prop> let takeUntil p xs = NonEmpty.zipWith const xs $ () !: void (takeWhile (not . p) $ NonEmpty.flatten xs) in \k xs -> takeUntil (>=k) xs == NonEmpty.takeUntil (>=(k::Int)) xs+-} takeUntil :: (a -> Bool) -> T [] a -> T [] a takeUntil p (Cons x xs) =    x !: if p x then [] else ListHT.takeUntil p xs@@ -782,6 +787,9 @@       in \superOffset (Cons i is) ->             C.indexHorner (ls,us) (superOffset*size + Ix.index (l,u) i) is +{-+GHC-7.10 requires FlexibleContexts extension for this instance.+-} instance (C.Ix f, Ix.Ix i, Ord (f i)) => Ix.Ix (T f i) where    range = C.range    index = C.index
test/Test/Data/NonEmptyPrivate.hs view
@@ -1,11 +1,11 @@ -- Do not edit! Automatically created with doctest-extract from src/Data/NonEmptyPrivate.hs-{-# LINE 39 "src/Data/NonEmptyPrivate.hs" #-}+{-# LINE 40 "src/Data/NonEmptyPrivate.hs" #-}  module Test.Data.NonEmptyPrivate where  import qualified Test.DocTest.Driver as DocTest -{-# LINE 40 "src/Data/NonEmptyPrivate.hs" #-}+{-# LINE 41 "src/Data/NonEmptyPrivate.hs" #-} import     qualified Data.NonEmpty as NonEmpty import     qualified Data.Empty as Empty import     qualified Data.Either.HT as EitherHT@@ -15,6 +15,7 @@ import     Data.Tuple.HT (swap) import     Data.Maybe (mapMaybe) import     Control.Applicative (liftA2)+import     Control.Functor.HT (void) import     qualified Test.QuickCheck as QC  forRange     :: (QC.Testable test) => ((Char,Char) -> test) -> QC.Property@@ -23,28 +24,33 @@  test :: DocTest.T () test = do- DocTest.printPrefix "Data.NonEmptyPrivate:743: "-{-# LINE 743 "src/Data/NonEmptyPrivate.hs" #-}+ DocTest.printPrefix "Data.NonEmptyPrivate:604: "+{-# LINE 604 "src/Data/NonEmptyPrivate.hs" #-}  DocTest.property-{-# LINE 743 "src/Data/NonEmptyPrivate.hs" #-}+{-# LINE 604 "src/Data/NonEmptyPrivate.hs" #-}+     (let takeUntil p xs = NonEmpty.zipWith const xs $ () !: void (takeWhile (not . p) $ NonEmpty.flatten xs) in \k xs -> takeUntil (>=k) xs == NonEmpty.takeUntil (>=(k::Int)) xs)+ DocTest.printPrefix "Data.NonEmptyPrivate:748: "+{-# LINE 748 "src/Data/NonEmptyPrivate.hs" #-}+ DocTest.property+{-# LINE 748 "src/Data/NonEmptyPrivate.hs" #-}      (\xs -> mapMaybe EitherHT.maybeLeft (NonEmpty.flatten xs) == either NonEmpty.flatten fst (NonEmpty.partitionEithersLeft (xs::NonEmpty.T[](Either Char Int))))- DocTest.printPrefix "Data.NonEmptyPrivate:744: "-{-# LINE 744 "src/Data/NonEmptyPrivate.hs" #-}+ DocTest.printPrefix "Data.NonEmptyPrivate:749: "+{-# LINE 749 "src/Data/NonEmptyPrivate.hs" #-}  DocTest.property-{-# LINE 744 "src/Data/NonEmptyPrivate.hs" #-}+{-# LINE 749 "src/Data/NonEmptyPrivate.hs" #-}      (\xs -> mapMaybe EitherHT.maybeRight (NonEmpty.flatten xs) == either (const []) (NonEmpty.flatten . snd) (NonEmpty.partitionEithersLeft (xs::NonEmpty.T[](Either Char Int))))- DocTest.printPrefix "Data.NonEmptyPrivate:745: "-{-# LINE 745 "src/Data/NonEmptyPrivate.hs" #-}+ DocTest.printPrefix "Data.NonEmptyPrivate:750: "+{-# LINE 750 "src/Data/NonEmptyPrivate.hs" #-}  DocTest.property-{-# LINE 745 "src/Data/NonEmptyPrivate.hs" #-}+{-# LINE 750 "src/Data/NonEmptyPrivate.hs" #-}      (\xs -> NonEmpty.partitionEithersRight (fmap EitherHT.swap xs) == EitherHT.mapLeft swap (EitherHT.swap (NonEmpty.partitionEithersLeft (xs::NonEmpty.T[](Either Char Int)))))- DocTest.printPrefix "Data.NonEmptyPrivate:755: "-{-# LINE 755 "src/Data/NonEmptyPrivate.hs" #-}+ DocTest.printPrefix "Data.NonEmptyPrivate:760: "+{-# LINE 760 "src/Data/NonEmptyPrivate.hs" #-}  DocTest.property-{-# LINE 755 "src/Data/NonEmptyPrivate.hs" #-}+{-# LINE 760 "src/Data/NonEmptyPrivate.hs" #-}      (\xs -> NonEmpty.partitionEithersLeft (fmap EitherHT.swap xs) == EitherHT.mapRight swap (EitherHT.swap (NonEmpty.partitionEithersRight (xs::NonEmpty.T[](Either Char Int)))))- DocTest.printPrefix "Data.NonEmptyPrivate:766: "-{-# LINE 766 "src/Data/NonEmptyPrivate.hs" #-}+ DocTest.printPrefix "Data.NonEmptyPrivate:771: "+{-# LINE 771 "src/Data/NonEmptyPrivate.hs" #-}  DocTest.property-{-# LINE 766 "src/Data/NonEmptyPrivate.hs" #-}+{-# LINE 771 "src/Data/NonEmptyPrivate.hs" #-}      (forRange $ \b0 -> forRange $ \b1 -> forRange $ \b2 -> let b = FuncHT.unzip $ b0!:b1!:b2!:Empty.Cons in map (Ix.index b) (Ix.range b) == take (Ix.rangeSize b) [0..])