packages feed

range-set-list 0.1.0.0 → 0.1.1.0

raw patch · 5 files changed

+39/−8 lines, 5 filesdep +deepseqdep +hashabledep +semigroupsPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependencies added: deepseq, hashable, semigroups

API changes (from Hackage documentation)

- Data.RangeSet.List: instance (Ord a, Enum a) => Monoid (RSet a)
- Data.RangeSet.List: instance Eq a => Eq (RSet a)
- Data.RangeSet.List: instance Ord a => Ord (RSet a)
- Data.RangeSet.List: instance Show a => Show (RSet a)
+ Data.RangeSet.List: instance (GHC.Classes.Ord a, GHC.Enum.Enum a) => Data.Semigroup.Semigroup (Data.RangeSet.List.RSet a)
+ Data.RangeSet.List: instance (GHC.Classes.Ord a, GHC.Enum.Enum a) => GHC.Base.Monoid (Data.RangeSet.List.RSet a)
+ Data.RangeSet.List: instance Control.DeepSeq.NFData a => Control.DeepSeq.NFData (Data.RangeSet.List.RSet a)
+ Data.RangeSet.List: instance Data.Hashable.Class.Hashable a => Data.Hashable.Class.Hashable (Data.RangeSet.List.RSet a)
+ Data.RangeSet.List: instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.RangeSet.List.RSet a)
+ Data.RangeSet.List: instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.RangeSet.List.RSet a)
+ Data.RangeSet.List: instance GHC.Show.Show a => GHC.Show.Show (Data.RangeSet.List.RSet a)

Files

CHANGELOG.md view
@@ -1,3 +1,11 @@+### 0.1.1.0++- Add `Semigroup`, `NFData`, `Hashable` and `Typeable` instances++### 0.1.0.0++- Consider API stable+ ### 0.0.7  - `findMin` & `findMax`
README.md view
@@ -1,6 +1,10 @@ # range-set-list  [![Build Status](https://travis-ci.org/phadej/range-set-list.svg?branch=travis-expr)](https://travis-ci.org/phadej/range-set-list)+[![Hackage](https://img.shields.io/hackage/v/range-set-list.svg)](http://hackage.haskell.org/package/range-set-list)+[![Stackage LTS 2](http://stackage.org/package/range-set-list/badge/lts-2)](http://stackage.org/lts-2/package/range-set-list)+[![Stackage LTS 3](http://stackage.org/package/range-set-list/badge/lts-3)](http://stackage.org/lts-3/package/range-set-list)+[![Stackage Nightly](http://stackage.org/package/range-set-list/badge/nightly)](http://stackage.org/nightly/package/range-set-list)  A trivial implementation of range sets. 
range-set-list.cabal view
@@ -1,9 +1,9 @@--- This file has been generated from package.yaml by hpack version 0.7.1.+-- This file has been generated from package.yaml by hpack version 0.8.0. -- -- see: https://github.com/sol/hpack  name:                range-set-list-version:             0.1.0.0+version:             0.1.1.0 synopsis:            Memory efficient sets with continuous ranges of elements. description:         Memory efficient sets with continuous ranges of elements. List based implementation. Interface mimics 'Data.Set' interface where possible. homepage:            https://github.com/phadej/range-set-list#readme@@ -12,7 +12,7 @@ license-file:        LICENSE author:              Oleg Grenrus <oleg.grenrus@iki.fi> maintainer:          Oleg Grenrus <oleg.grenrus@iki.fi>-category:            Documentation+category:            Data tested-with:         GHC==7.4.2, GHC==7.6.3, GHC==7.8.4, GHC==7.10.2 build-type:          Simple cabal-version:       >= 1.10@@ -30,7 +30,10 @@     src   ghc-options: -Wall -fwarn-tabs   build-depends:-    base >=4.5 && <4.9+    base        >=4.5      && <4.9,+    semigroups  >=0.16.2.2 && <0.19,+    deepseq     >=1.3.0.0  && <1.5,+    hashable    >=1.2.3.3  && <1.3   exposed-modules:     Data.RangeSet.List   default-language: Haskell2010@@ -42,7 +45,10 @@     tests   ghc-options: -Wall -fwarn-tabs   build-depends:-    base >=4.5 && <4.9,+    base        >=4.5      && <4.9,+    semigroups  >=0.16.2.2 && <0.19,+    deepseq     >=1.3.0.0  && <1.5,+    hashable    >=1.2.3.3  && <1.3,     containers        >=0.5 && <0.6,     tasty             >=0.8 && <0.12,     tasty-quickcheck  >=0.8 && <0.9,
src/Data/RangeSet/List.hs view
@@ -29,7 +29,7 @@ and there aren't elements in between (not true for 'Float' and 'Double'). Also 'succ' and 'pred' are never called for largest or smallest value respectively. -}-+{-# LANGUAGE DeriveDataTypeable #-} module Data.RangeSet.List (   -- * Range set type   RSet@@ -77,18 +77,31 @@ import Prelude hiding (filter,foldl,foldr,null,map) import qualified Prelude +import Control.DeepSeq (NFData(..))+import Data.Typeable (Typeable)+import Data.Semigroup (Semigroup(..)) import Data.Monoid (Monoid(..))+import Data.Hashable (Hashable(..))  -- | Internally set is represented as sorted list of distinct inclusive ranges. newtype RSet a = RSet [(a, a)]-  deriving (Eq, Ord)+  deriving (Eq, Ord, Typeable)  instance Show a => Show (RSet a) where   show (RSet xs) = "fromRangeList " ++ show xs +instance (Ord a, Enum a) => Semigroup (RSet a) where+    (<>) = union+ instance (Ord a, Enum a) => Monoid (RSet a) where     mempty  = empty     mappend = union++instance Hashable a => Hashable (RSet a) where+    hashWithSalt salt (RSet xs) = hashWithSalt salt xs++instance NFData a => NFData (RSet a) where+    rnf (RSet xs) = rnf xs  {- Operators -} infixl 9 \\ --
tests/Tests.hs view
@@ -10,7 +10,7 @@ import Control.Applicative import Data.Int -import Data.Monoid+import Data.Semigroup  main :: IO () main = defaultMain tests