Ranged-sets 0.3.0 → 0.4.0
raw patch · 7 files changed
+38/−82 lines, 7 filesdep ~QuickCheckdep ~basePVP ok
version bump matches the API change (PVP)
Dependency ranges changed: QuickCheck, base
API changes (from Hackage documentation)
- Data.Ranged.Boundaries: instance (Ord a, DiscreteOrdered b) => DiscreteOrdered (a, b)
- Data.Ranged.Boundaries: instance (Ord a, Ord b, DiscreteOrdered c) => DiscreteOrdered (a, b, c)
- Data.Ranged.Boundaries: instance (Ord a, Ord b, Ord c, DiscreteOrdered d) => DiscreteOrdered (a, b, c, d)
- Data.Ranged.Boundaries: instance Arbitrary a => Arbitrary (Boundary a)
- Data.Ranged.Boundaries: instance CoArbitrary a => CoArbitrary (Boundary a)
- Data.Ranged.Boundaries: instance DiscreteOrdered Bool
- Data.Ranged.Boundaries: instance DiscreteOrdered Char
- Data.Ranged.Boundaries: instance DiscreteOrdered Double
- Data.Ranged.Boundaries: instance DiscreteOrdered Float
- Data.Ranged.Boundaries: instance DiscreteOrdered Int
- Data.Ranged.Boundaries: instance DiscreteOrdered Integer
- Data.Ranged.Boundaries: instance DiscreteOrdered Ordering
- Data.Ranged.Boundaries: instance DiscreteOrdered a => Eq (Boundary a)
- Data.Ranged.Boundaries: instance DiscreteOrdered a => Ord (Boundary a)
- Data.Ranged.Boundaries: instance Integral a => DiscreteOrdered (Ratio a)
- Data.Ranged.Boundaries: instance Ord a => DiscreteOrdered [a]
- Data.Ranged.Boundaries: instance Show a => Show (Boundary a)
- Data.Ranged.RangedSet: instance (Arbitrary v, DiscreteOrdered v, Show v) => Arbitrary (RSet v)
- Data.Ranged.RangedSet: instance (CoArbitrary v, DiscreteOrdered v, Show v) => CoArbitrary (RSet v)
- Data.Ranged.RangedSet: instance (Show v, DiscreteOrdered v) => Show (RSet v)
- Data.Ranged.RangedSet: instance DiscreteOrdered a => Monoid (RSet a)
- Data.Ranged.RangedSet: instance DiscreteOrdered v => Eq (RSet v)
- Data.Ranged.Ranges: instance (Arbitrary v, DiscreteOrdered v, Show v) => Arbitrary (Range v)
- Data.Ranged.Ranges: instance (CoArbitrary v, DiscreteOrdered v, Show v) => CoArbitrary (Range v)
- Data.Ranged.Ranges: instance (Show a, DiscreteOrdered a) => Show (Range a)
- Data.Ranged.Ranges: instance DiscreteOrdered a => Eq (Range a)
- Data.Ranged.Ranges: instance DiscreteOrdered a => Ord (Range a)
- Data.Ranged.Ranges: rangeLower :: Range v -> Boundary v
- Data.Ranged.Ranges: rangeUpper :: Range v -> Boundary v
+ Data.Ranged.Boundaries: infix 4 />/
+ Data.Ranged.Boundaries: instance (GHC.Classes.Ord a, Data.Ranged.Boundaries.DiscreteOrdered b) => Data.Ranged.Boundaries.DiscreteOrdered (a, b)
+ Data.Ranged.Boundaries: instance (GHC.Classes.Ord a, GHC.Classes.Ord b, Data.Ranged.Boundaries.DiscreteOrdered c) => Data.Ranged.Boundaries.DiscreteOrdered (a, b, c)
+ Data.Ranged.Boundaries: instance (GHC.Classes.Ord a, GHC.Classes.Ord b, GHC.Classes.Ord c, Data.Ranged.Boundaries.DiscreteOrdered d) => Data.Ranged.Boundaries.DiscreteOrdered (a, b, c, d)
+ Data.Ranged.Boundaries: instance Data.Ranged.Boundaries.DiscreteOrdered GHC.Integer.Type.Integer
+ Data.Ranged.Boundaries: instance Data.Ranged.Boundaries.DiscreteOrdered GHC.Types.Bool
+ Data.Ranged.Boundaries: instance Data.Ranged.Boundaries.DiscreteOrdered GHC.Types.Char
+ Data.Ranged.Boundaries: instance Data.Ranged.Boundaries.DiscreteOrdered GHC.Types.Double
+ Data.Ranged.Boundaries: instance Data.Ranged.Boundaries.DiscreteOrdered GHC.Types.Float
+ Data.Ranged.Boundaries: instance Data.Ranged.Boundaries.DiscreteOrdered GHC.Types.Int
+ Data.Ranged.Boundaries: instance Data.Ranged.Boundaries.DiscreteOrdered GHC.Types.Ordering
+ Data.Ranged.Boundaries: instance Data.Ranged.Boundaries.DiscreteOrdered a => GHC.Classes.Eq (Data.Ranged.Boundaries.Boundary a)
+ Data.Ranged.Boundaries: instance Data.Ranged.Boundaries.DiscreteOrdered a => GHC.Classes.Ord (Data.Ranged.Boundaries.Boundary a)
+ Data.Ranged.Boundaries: instance GHC.Classes.Ord a => Data.Ranged.Boundaries.DiscreteOrdered [a]
+ Data.Ranged.Boundaries: instance GHC.Real.Integral a => Data.Ranged.Boundaries.DiscreteOrdered (GHC.Real.Ratio a)
+ Data.Ranged.Boundaries: instance GHC.Show.Show a => GHC.Show.Show (Data.Ranged.Boundaries.Boundary a)
+ Data.Ranged.Boundaries: instance Test.QuickCheck.Arbitrary.Arbitrary a => Test.QuickCheck.Arbitrary.Arbitrary (Data.Ranged.Boundaries.Boundary a)
+ Data.Ranged.Boundaries: instance Test.QuickCheck.Arbitrary.CoArbitrary a => Test.QuickCheck.Arbitrary.CoArbitrary (Data.Ranged.Boundaries.Boundary a)
+ Data.Ranged.RangedSet: infixl 5 -<-
+ Data.Ranged.RangedSet: infixl 6 -!-
+ Data.Ranged.RangedSet: infixl 7 -/\-
+ Data.Ranged.RangedSet: instance (Data.Ranged.Boundaries.DiscreteOrdered v, GHC.Show.Show v) => GHC.Show.Show (Data.Ranged.RangedSet.RSet v)
+ Data.Ranged.RangedSet: instance (Test.QuickCheck.Arbitrary.Arbitrary v, Data.Ranged.Boundaries.DiscreteOrdered v, GHC.Show.Show v) => Test.QuickCheck.Arbitrary.Arbitrary (Data.Ranged.RangedSet.RSet v)
+ Data.Ranged.RangedSet: instance (Test.QuickCheck.Arbitrary.CoArbitrary v, Data.Ranged.Boundaries.DiscreteOrdered v, GHC.Show.Show v) => Test.QuickCheck.Arbitrary.CoArbitrary (Data.Ranged.RangedSet.RSet v)
+ Data.Ranged.RangedSet: instance Data.Ranged.Boundaries.DiscreteOrdered a => GHC.Base.Monoid (Data.Ranged.RangedSet.RSet a)
+ Data.Ranged.RangedSet: instance Data.Ranged.Boundaries.DiscreteOrdered a => GHC.Base.Semigroup (Data.Ranged.RangedSet.RSet a)
+ Data.Ranged.RangedSet: instance Data.Ranged.Boundaries.DiscreteOrdered v => GHC.Classes.Eq (Data.Ranged.RangedSet.RSet v)
+ Data.Ranged.Ranges: [rangeLower, rangeUpper] :: Range v -> Boundary v
+ Data.Ranged.Ranges: instance (GHC.Show.Show a, Data.Ranged.Boundaries.DiscreteOrdered a) => GHC.Show.Show (Data.Ranged.Ranges.Range a)
+ Data.Ranged.Ranges: instance (Test.QuickCheck.Arbitrary.Arbitrary v, Data.Ranged.Boundaries.DiscreteOrdered v, GHC.Show.Show v) => Test.QuickCheck.Arbitrary.Arbitrary (Data.Ranged.Ranges.Range v)
+ Data.Ranged.Ranges: instance (Test.QuickCheck.Arbitrary.CoArbitrary v, Data.Ranged.Boundaries.DiscreteOrdered v, GHC.Show.Show v) => Test.QuickCheck.Arbitrary.CoArbitrary (Data.Ranged.Ranges.Range v)
+ Data.Ranged.Ranges: instance Data.Ranged.Boundaries.DiscreteOrdered a => GHC.Classes.Eq (Data.Ranged.Ranges.Range a)
+ Data.Ranged.Ranges: instance Data.Ranged.Boundaries.DiscreteOrdered a => GHC.Classes.Ord (Data.Ranged.Ranges.Range a)
- Data.Ranged.Ranges: Range :: Boundary v -> Boundary v -> Range v
+ Data.Ranged.Ranges: Range :: Boundary v -> Range v
Files
- CHANGES.txt +7/−0
- Data/Ranged/RangedSet.hs +3/−2
- INSTALL.txt +0/−14
- Ranged-sets.cabal +26/−35
- TODO.txt +0/−13
- tests/Main.hs +2/−2
- tests/Makefile +0/−16
CHANGES.txt view
@@ -50,3 +50,10 @@ ------------- Require QuickCheck >= 2.4. This changes the API for the Arbitrary and CoArbitrary instances, so it gets a version number bump.++Version 0.4.0+-------------++Added Semigroup instance.+Enabled "cabal test".+Master repository now on GitHub.
Data/Ranged/RangedSet.hs view
@@ -58,7 +58,6 @@ import Data.Ranged.Boundaries import Data.Ranged.Ranges-import Data.Monoid import Data.List import Test.QuickCheck@@ -72,8 +71,10 @@ newtype DiscreteOrdered v => RSet v = RSet {rSetRanges :: [Range v]} deriving (Eq, Show) +instance DiscreteOrdered a => Semigroup (RSet a) where+ (<>) = rSetUnion+ instance DiscreteOrdered a => Monoid (RSet a) where- mappend = rSetUnion mempty = rSetEmpty -- | Determine if the ranges in the list are both in order and non-overlapping.
− INSTALL.txt
@@ -1,14 +0,0 @@-As user, from within the project directory:-- runghc Setup.hs configure- runghc Setup.hs build--As root or administrator:-- runghc Setup.hs install- -If you have Haddock then generate the documentation with:-- runghc Setup.hs haddock- -If you use Hugs then type "runhugs" instead of "runghc".
Ranged-sets.cabal view
@@ -1,14 +1,13 @@ name: Ranged-sets-version: 0.3.0-cabal-version: -any+version: 0.4.0+cabal-version: 1.24 build-type: Simple license: BSD3 license-file: LICENSE.txt-copyright: Paul Johnson, 2005, 2006, 2007, 2008+copyright: Paul Johnson, 2005, 2006, 2007, 2008, 2019 maintainer: paul@cogito.org.uk-build-depends: HUnit -any, QuickCheck >=2, base >=4 && <5 stability: beta-homepage: http://code.haskell.org/ranged-sets+homepage: https://github.com/PaulJohnson/Ranged-sets package-url: bug-reports: synopsis: Ranged sets for Haskell@@ -21,34 +20,26 @@ > ("F" <= s < "G") category: Data author: Paul Johnson-tested-with:-data-files:-data-dir: ""-extra-source-files: CHANGES.txt INSTALL.txt README.txt TODO.txt- tests/Main.hs tests/Makefile-extra-tmp-files:-exposed-modules: Data.Ranged Data.Ranged.Ranges+extra-source-files: CHANGES.txt README.txt++library+ build-depends: HUnit -any, QuickCheck >=2, base >=4 && <5+ exposed-modules: Data.Ranged Data.Ranged.Ranges Data.Ranged.RangedSet Data.Ranged.Boundaries-exposed: True-buildable: True-build-tools:-cpp-options:-cc-options:-ld-options:-pkgconfig-depends:-frameworks:-c-sources:-extensions:-extra-libraries:-extra-lib-dirs:-includes:-install-includes:-include-dirs:-hs-source-dirs: .-other-modules:-ghc-prof-options:-ghc-shared-options:-ghc-options: -Wall-hugs-options:-nhc98-options:-jhc-options:+ exposed: True+ buildable: True+ default-language: Haskell2010+++Test-suite properties+ type: exitcode-stdio-1.0+ default-language: Haskell2010+ main-is: Main.hs+ hs-source-dirs: tests .+ other-modules: Data.Ranged Data.Ranged.Ranges+ Data.Ranged.RangedSet Data.Ranged.Boundaries+ build-depends:+ base >= 4 && < 5,+ HUnit,+ QuickCheck+
− TODO.txt
@@ -1,13 +0,0 @@-Things to do:- -* Test with yhc.--* Define ranges of times and dates. The set of all Mondays, for instance,- or the set of all second weeks in the month. Any such functions would- have to take a start date because the only alternative is to start- with the epoch, and that would not be efficient. The existing date-time- functions look a bit clunky for this job, but the proposals of- Ashley Yakeley at http://semantic.org/TimeLib/ look more suitable.---
tests/Main.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS_GHC -fglasgow-exts #-}+{-# LANGUAGE ScopedTypeVariables #-} module Main where @@ -8,7 +8,7 @@ conf :: Args-conf = stdArgs { maxSuccess = 1000, maxDiscard = 10000 }+conf = stdArgs { maxSuccess = 1000, maxDiscardRatio = 100 } check :: (Test.QuickCheck.Testable prop) => prop -> IO () check = quickCheckWith conf
− tests/Makefile
@@ -1,16 +0,0 @@-# Tests for Ranged Sets.--all:- ghc --make -fhpc -i.. -odir . -hidir . -Wall Main.hs -o test-rset- rm -f test-rset.tix- ./test-rset- hpc markup --destdir=Report test-rset- hpc report test-rset--clean:- rm -fR Data- rm -f test-rset.tix- rm -f test-rset- rm -f *.o *.hi- rm -fR Report-