packages feed

EdisonCore 1.2.1.3 → 1.2.2

raw patch · 24 files changed

+60/−13 lines, 24 filesdep ~EdisonAPIdep ~QuickCheckdep ~basePVP ok

version bump matches the API change (PVP)

Dependency ranges changed: EdisonAPI, QuickCheck, base

API changes (from Hackage documentation)

+ Data.Edison.Assoc.AssocList: instance (Eq k, CoArbitrary k, CoArbitrary a) => CoArbitrary (FM k a)
+ Data.Edison.Assoc.PatriciaLoMap: instance CoArbitrary a => CoArbitrary (FM a)
+ Data.Edison.Assoc.StandardMap: instance (Ord k, CoArbitrary k, CoArbitrary a) => CoArbitrary (FM k a)
+ Data.Edison.Assoc.TernaryTrie: instance (Ord k, CoArbitrary k, CoArbitrary a) => CoArbitrary (FM k a)
+ Data.Edison.Coll.EnumSet: instance (Eq a, Enum a, CoArbitrary a) => CoArbitrary (Set a)
+ Data.Edison.Coll.LazyPairingHeap: instance (Ord a, CoArbitrary a) => CoArbitrary (Heap a)
+ Data.Edison.Coll.LeftistHeap: instance (Ord a, CoArbitrary a) => CoArbitrary (Heap a)
+ Data.Edison.Coll.MinHeap: instance (OrdColl h a, CoArbitrary h, CoArbitrary a) => CoArbitrary (Min h a)
+ Data.Edison.Coll.SkewHeap: instance (Ord a, CoArbitrary a) => CoArbitrary (Heap a)
+ Data.Edison.Coll.SplayHeap: instance (Ord a, CoArbitrary a) => CoArbitrary (Heap a)
+ Data.Edison.Coll.StandardSet: instance (Ord a, CoArbitrary a) => CoArbitrary (Set a)
+ Data.Edison.Coll.UnbalancedSet: instance (Ord a, CoArbitrary a) => CoArbitrary (Set a)
+ Data.Edison.Concrete.FingerTree: instance (Measured v a, CoArbitrary a) => CoArbitrary (FingerTree v a)
+ Data.Edison.Concrete.FingerTree: instance (Measured v a, CoArbitrary a) => CoArbitrary (Node v a)
+ Data.Edison.Concrete.FingerTree: instance CoArbitrary a => CoArbitrary (Digit a)
+ Data.Edison.Seq.BankersQueue: instance CoArbitrary a => CoArbitrary (Seq a)
+ Data.Edison.Seq.BinaryRandList: instance CoArbitrary a => CoArbitrary (Seq a)
+ Data.Edison.Seq.BraunSeq: instance CoArbitrary a => CoArbitrary (Seq a)
+ Data.Edison.Seq.FingerSeq: instance CoArbitrary a => CoArbitrary (Elem a)
+ Data.Edison.Seq.FingerSeq: instance CoArbitrary a => CoArbitrary (Seq a)
+ Data.Edison.Seq.JoinList: instance CoArbitrary a => CoArbitrary (Seq a)
+ Data.Edison.Seq.MyersStack: instance CoArbitrary a => CoArbitrary (Seq a)
+ Data.Edison.Seq.RandList: instance CoArbitrary a => CoArbitrary (Seq a)
+ Data.Edison.Seq.RevSeq: instance (Sequence s, CoArbitrary (s a)) => CoArbitrary (Rev s a)
+ Data.Edison.Seq.SimpleQueue: instance CoArbitrary a => CoArbitrary (Seq a)
+ Data.Edison.Seq.SizedSeq: instance (Sequence s, CoArbitrary (s a)) => CoArbitrary (Sized s a)

Files

EdisonCore.cabal view
@@ -1,7 +1,7 @@ Name:           EdisonCore-Cabal-Version:  >= 1.2+Cabal-Version:  >= 1.2.3 Build-Type:     Simple-Version:        1.2.1.3+Version:        1.2.2 License:        OtherLicense License-File:   COPYRIGHT Author:         Chris Okasaki@@ -47,9 +47,10 @@      Data.Edison.Seq.SimpleQueue      Data.Edison.Seq.SizedSeq   Build-Depends:-     base, mtl,-     QuickCheck >= 1.0 && < 2,-     EdisonAPI == 1.2.1+     base < 5,+     mtl,+     QuickCheck >= 2.0 && < 3,+     EdisonAPI == 1.2.2   if impl( ghc >= 6.8 )      Build-Depends:         containers, array@@ -57,5 +58,10 @@      MultiParamTypeClasses      FunctionalDependencies      UndecidableInstances+     FlexibleInstances      CPP-  Ghc-Options: -funbox-strict-fields -fwarn-incomplete-patterns -O2 -fglasgow-exts+     MagicHash+     ScopedTypeVariables+     GeneralizedNewtypeDeriving+     FlexibleContexts+  Ghc-Options: -funbox-strict-fields -fwarn-incomplete-patterns
src/Data/Edison/Assoc/AssocList.hs view
@@ -62,7 +62,7 @@ import qualified Data.Edison.Seq as S import qualified Data.Edison.Seq.BinaryRandList as RL import Data.Edison.Assoc.Defaults-import Test.QuickCheck (Arbitrary(..), variant)+import Test.QuickCheck (Arbitrary(..), CoArbitrary(..), variant)  -- signatures for exported functions moduleName    :: String@@ -612,6 +612,7 @@    arbitrary = do xs <- arbitrary                   return (Prelude.foldr (uncurry insert) empty xs) +instance (Eq k,CoArbitrary k,CoArbitrary a) => CoArbitrary (FM k a) where    coarbitrary E = variant 0    coarbitrary (I k a m) = variant 1 . coarbitrary k                          . coarbitrary a . coarbitrary m
src/Data/Edison/Assoc/PatriciaLoMap.hs view
@@ -63,7 +63,7 @@ import Data.Edison.Assoc.Defaults import Data.Int import Data.Bits-import Test.QuickCheck (Arbitrary(..), variant)+import Test.QuickCheck (Arbitrary(..), CoArbitrary(..), variant)  moduleName :: String moduleName = "Data.Edison.Assoc.PatriciaLoMap"@@ -834,6 +834,7 @@    arbitrary = do xs <- arbitrary                   return (Prelude.foldr (uncurry insert) empty xs) +instance (CoArbitrary a) => CoArbitrary (FM a) where    coarbitrary E = variant 0    coarbitrary (L i a) = variant 1 . coarbitrary i . coarbitrary a    coarbitrary (B i j m n) = variant 2 . coarbitrary i . coarbitrary j
src/Data/Edison/Assoc/StandardMap.hs view
@@ -56,7 +56,7 @@ import qualified Data.Edison.Seq.ListSeq as L import Data.Edison.Assoc.Defaults import Data.Int-import Test.QuickCheck (Arbitrary(..))+import Test.QuickCheck (Arbitrary(..), CoArbitrary(..))  import qualified Data.Map as DM @@ -364,4 +364,5 @@    arbitrary = do xs <- arbitrary                   return (Prelude.foldr (uncurry insert) empty xs) +instance (Ord k,CoArbitrary k,CoArbitrary a) => CoArbitrary (FM k a) where    coarbitrary mp = coarbitrary (A.toList mp)
src/Data/Edison/Assoc/TernaryTrie.hs view
@@ -62,7 +62,7 @@ import Data.Maybe (isNothing)  import Data.Edison.Assoc.Defaults-import Test.QuickCheck (Arbitrary(..), Gen(), variant)+import Test.QuickCheck (Arbitrary(..), CoArbitrary(..), Gen(), variant)   -- signatures for exported functions@@ -1142,15 +1142,17 @@ instance (Ord k,Arbitrary k,Arbitrary a) => Arbitrary (FM k a) where   arbitrary = do xs <- arbitrary                  return (Prelude.foldr (uncurry insert) empty xs)++instance (Ord k,CoArbitrary k,CoArbitrary a) => CoArbitrary (FM k a) where   coarbitrary (FM x fmb) = coarbitrary_maybe x . coarbitrary_fmb fmb  -coarbitrary_maybe :: (Arbitrary t) => Maybe t    -> Test.QuickCheck.Gen b+coarbitrary_maybe :: (CoArbitrary t) => Maybe t  -> Test.QuickCheck.Gen b                                                  -> Test.QuickCheck.Gen b coarbitrary_maybe Nothing = variant 0 coarbitrary_maybe (Just x) = variant 1 . coarbitrary x -coarbitrary_fmb :: (Arbitrary t1, Arbitrary t) => FMB t t1 -> Gen a -> Gen a+coarbitrary_fmb :: (CoArbitrary t1, CoArbitrary t) => FMB t t1 -> Gen a -> Gen a coarbitrary_fmb E = variant 0 coarbitrary_fmb (I _ k x l (FMB' m) r) =         variant 1 . coarbitrary k . coarbitrary_maybe x .
src/Data/Edison/Coll/EnumSet.hs view
@@ -165,7 +165,7 @@ import qualified Data.Edison.Seq as S import qualified Data.Edison.Coll as C import Data.Edison.Coll.Defaults-import Test.QuickCheck hiding (check)+import Test.QuickCheck (Arbitrary(..), CoArbitrary(..))  moduleName :: String moduleName = "Data.Edison.Coll.EnumSet"@@ -786,6 +786,7 @@   arbitrary = do (w::Int) <- arbitrary                  return (Set (fromIntegral w)) +instance (Eq a, Enum a, CoArbitrary a) => CoArbitrary (Set a) where   coarbitrary (Set w) = coarbitrary (fromIntegral w :: Int)  instance (Eq a, Enum a) => Monoid (Set a) where
src/Data/Edison/Coll/LazyPairingHeap.hs view
@@ -550,6 +550,7 @@           siftInto x (H2 _ a b) = sift x a b           siftInto _ E = error "LazyPairingHeap.arbitrary: bug!" +instance (Ord a, CoArbitrary a) => CoArbitrary (Heap a) where   coarbitrary E = variant 0   coarbitrary (H1 x a) = variant 1 . coarbitrary x . coarbitrary a   coarbitrary (H2 x a b) =
src/Data/Edison/Coll/LeftistHeap.hs view
@@ -477,6 +477,7 @@                 L r y a (sift (L r' x b c))           sift _ = error "LeftistHeap.arbitrary: bug!" +instance (Ord a, CoArbitrary a) => CoArbitrary (Heap a) where   coarbitrary E = variant 0   coarbitrary (L _ x a b) =       variant 1 . coarbitrary x . coarbitrary a . coarbitrary b
src/Data/Edison/Coll/MinHeap.hs view
@@ -393,6 +393,7 @@                          else if odd i then M (C.minElem xs) xs                                        else fromPrim xs) +instance (C.OrdColl h a,CoArbitrary h,CoArbitrary a) => CoArbitrary (Min h a) where   coarbitrary E = variant 0   coarbitrary (M x xs) = variant 1 . coarbitrary x . coarbitrary xs 
src/Data/Edison/Coll/SkewHeap.hs view
@@ -444,6 +444,7 @@             | z < x           = T z s (sift x c d)           sift x a b = T x a b +instance (Ord a, CoArbitrary a) => CoArbitrary (Heap a) where   coarbitrary E = variant 0   coarbitrary (T x a b) =       variant 1 . coarbitrary x . coarbitrary a . coarbitrary b
src/Data/Edison/Coll/SplayHeap.hs view
@@ -480,6 +480,7 @@   arbitrary = do xs <- arbitrary                  return (C.fromList xs) +instance (Ord a,CoArbitrary a) => CoArbitrary (Heap a) where   coarbitrary E = variant 0   coarbitrary (T a x b) =     variant 1 . coarbitrary a . coarbitrary x . coarbitrary b
src/Data/Edison/Coll/StandardSet.hs view
@@ -268,4 +268,5 @@   arbitrary = do xs <- arbitrary                  return (Prelude.foldr insert empty xs) +instance (Ord a, CoArbitrary a) => CoArbitrary (Set a) where   coarbitrary set = coarbitrary (C.toList set)
src/Data/Edison/Coll/UnbalancedSet.hs view
@@ -424,6 +424,7 @@   arbitrary = do xs <- arbitrary                  return (Prelude.foldr insert empty xs) +instance (Ord a, CoArbitrary a) => CoArbitrary (Set a) where   coarbitrary E = variant 0   coarbitrary (T a x b) =     variant 1 . coarbitrary a . coarbitrary x . coarbitrary b
src/Data/Edison/Concrete/FingerTree.hs view
@@ -80,7 +80,9 @@  import Data.Edison.Prelude +import Control.Monad (liftM2, liftM3, liftM4) + infixr 5 `lcons` infixl 5 `rcons0` @@ -727,8 +729,15 @@ reverseDigit f (Three a b c) = Three (f c) (f b) (f a) reverseDigit f (Four a b c d) = Four (f d) (f c) (f b) (f a) +two :: Monad m => m a -> m (a, a)+two m = liftM2 (,) m m +three :: Monad m => m a -> m (a, a, a)+three m = liftM3 (,,) m m m +four :: Monad m => m a -> m (a, a, a, a)+four m = liftM4 (,,,) m m m m+ instance (Arbitrary a) => Arbitrary (Digit a) where   arbitrary = oneof               [ arbitrary       >>= \x         -> return (One x)@@ -737,6 +746,8 @@               , four arbitrary  >>= \(x,y,z,w) -> return (Four x y z w)               ] ++instance (CoArbitrary a) => CoArbitrary (Digit a) where   coarbitrary p = case p of       One x        -> variant 0 . coarbitrary x       Two x y      -> variant 1 . coarbitrary x . coarbitrary y@@ -752,6 +763,7 @@               , three arbitrary >>= \(x,y,z)   -> return (node3 x y z)               ] +instance (Measured v a, CoArbitrary a) => CoArbitrary (Node v a) where   coarbitrary p = case p of        Node2 _ x y   -> variant 0 . coarbitrary x . coarbitrary y        Node3 _ x y z -> variant 1 . coarbitrary x . coarbitrary y . coarbitrary z@@ -768,6 +780,7 @@                    return (deep pf m sf)                ] +instance (Measured v a, CoArbitrary a) => CoArbitrary (FingerTree v a) where   coarbitrary p = case p of          Empty          -> variant 0          Single x       -> variant 1 . coarbitrary x
src/Data/Edison/Seq/BankersQueue.hs view
@@ -414,6 +414,7 @@                    j = L.size ys                in if i >= j then Q i xs ys j else Q j ys xs i) +instance CoArbitrary a => CoArbitrary (Seq a) where   coarbitrary (Q _ xs ys _) = coarbitrary xs . coarbitrary ys  instance Monoid (Seq a) where
src/Data/Edison/Seq/BinaryRandList.hs view
@@ -441,9 +441,11 @@   arbitrary = do xs <- arbitrary                  return (fromList xs) +instance CoArbitrary a => CoArbitrary (Seq a) where   coarbitrary E = variant 0   coarbitrary (Even ps) = variant 1 . coarbitrary ps   coarbitrary (Odd x ps) = variant 2 . coarbitrary x . coarbitrary ps+  instance Monoid (Seq a) where   mempty  = empty
src/Data/Edison/Seq/BraunSeq.hs view
@@ -543,6 +543,8 @@  instance Arbitrary a => Arbitrary (Seq a) where   arbitrary = arbitrary >>= (return . fromList)++instance CoArbitrary a => CoArbitrary (Seq a) where   coarbitrary xs = coarbitrary (toList xs)  instance Monoid (Seq a) where
src/Data/Edison/Seq/FingerSeq.hs view
@@ -370,10 +370,14 @@  instance Arbitrary a => Arbitrary (Elem a) where    arbitrary   = arbitrary >>= return . Elem++instance CoArbitrary a => CoArbitrary (Elem a) where    coarbitrary = coarbitrary . unElem  instance Arbitrary a => Arbitrary (Seq a) where    arbitrary   = arbitrary >>= return . Seq++instance CoArbitrary a => CoArbitrary (Seq a) where    coarbitrary = coarbitrary . unSeq  instance Monoid (Seq a) where
src/Data/Edison/Seq/JoinList.hs view
@@ -416,6 +416,7 @@                        (4, liftM2 A (arbTree (n `div` 2))                                     (arbTree (n `div` 2)))] +instance CoArbitrary a => CoArbitrary (Seq a) where   coarbitrary E = variant 0   coarbitrary (L x) = variant 1 . coarbitrary x   coarbitrary (A xs ys) = variant 2 . coarbitrary xs . coarbitrary ys
src/Data/Edison/Seq/MyersStack.hs view
@@ -414,6 +414,7 @@   arbitrary = do xs <- arbitrary                  return (fromList xs) +instance CoArbitrary a => CoArbitrary (Seq a) where   coarbitrary xs = coarbitrary (toList xs)  instance Monoid (Seq a) where
src/Data/Edison/Seq/RandList.hs view
@@ -474,6 +474,7 @@   arbitrary = do xs <- arbitrary                  return (fromList xs) +instance CoArbitrary a => CoArbitrary (Seq a) where   coarbitrary xs = coarbitrary (toList xs)  instance Monoid (Seq a) where
src/Data/Edison/Seq/RevSeq.hs view
@@ -374,6 +374,7 @@   arbitrary = do xs <- arbitrary                  return (fromSeq xs) +instance (S.Sequence s, CoArbitrary (s a)) => CoArbitrary (Rev s a) where   coarbitrary xs = coarbitrary (toSeq xs)  instance S.Sequence s => Monoid (Rev s a) where
src/Data/Edison/Seq/SimpleQueue.hs view
@@ -366,6 +366,7 @@                  ys <- arbitrary                  return (if L.null xs then Q ys [] else Q xs ys) +instance CoArbitrary a => CoArbitrary (Seq a) where   coarbitrary (Q xs ys) = coarbitrary xs . coarbitrary ys  instance Monoid (Seq a) where
src/Data/Edison/Seq/SizedSeq.hs view
@@ -347,6 +347,7 @@   arbitrary = do xs <- arbitrary                  return (fromSeq xs) +instance (S.Sequence s, CoArbitrary (s a)) => CoArbitrary (Sized s a) where   coarbitrary xs = coarbitrary (toSeq xs)  instance S.Sequence s => Monoid (Sized s a) where