ranges 0.2 → 0.2.1
raw patch · 2 files changed
+7/−4 lines, 2 files
Files
- Data/Ranges.hs +6/−3
- ranges.cabal +1/−1
Data/Ranges.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE FlexibleInstances #-} module Data.Ranges -(range, ranges, Range, Ranges, inRange, inRanges, toSet,single)+(range, ranges, Range, Ranges, inRange, inRanges, toSet, single, addRange) where import Data.Set (Set)@@ -8,8 +8,8 @@ data Ord a => Range a = Single !a | Range !a !a instance (Ord a, Show a) => Show (Range a) where- show (Single x) = "(" ++ show x ++ ")"- show (Range x y) = "(" ++ show x ++ "-" ++ show y ++ ")"+ show (Single x) = concat ["(", show x, ")"]+ show (Range x y) = concat ["(", show x, "–", show y, ")"] newtype Ord a => Ranges a = Ranges [Range a] deriving Show @@ -63,6 +63,9 @@ -- | Allows quick lookups using ranges. toSet :: (Ord a) => Ranges a -> Set (Range a) toSet (Ranges x) = Set.fromList x++addRange :: (Ord a) => Ranges a -> Range a -> Ranges a+addRange (Ranges x) = Ranges . mergeRanges x mergeRanges :: (Ord a) => [Range a] -> Range a -> [Range a] mergeRanges [] y = [y]
ranges.cabal view
@@ -1,5 +1,5 @@ Name: ranges-Version: 0.2+Version: 0.2.1 Description: Ranges and some functions allowing things like fast membership lookup on ranges with holes in them and so on. Synopsis: Ranges and various functions on them.