-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Ranges and various functions on them.
--   
--   Ranges and some functions allowing things like fast membership lookup
--   on ranges with holes in them and so on.
@package ranges
@version 0.2.4

module Data.Ranges

-- | Construct a <a>Range</a> from a lower and upper bound.
range :: Ord a => a -> a -> Range a

-- | Construct a <a>Ranges</a> from a list of lower and upper bounds.
ranges :: Ord a => [Range a] -> Ranges a
data Ord a => Range a
data Ord a => Ranges a

-- | Tests if a given range contains a particular value.
inRange :: Ord a => a -> Range a -> Bool

-- | Tests if any of the ranges contains a particular value.
inRanges :: Ord a => a -> Ranges a -> Bool

-- | Allows quick lookups using ranges.
toSet :: Ord a => Ranges a -> Set (Range a)

-- | A range consisting of a single value.
single :: Ord a => a -> Range a
addRange :: Ord a => Ranges a -> Range a -> Ranges a
instance GHC.Classes.Ord a => GHC.Classes.Eq (Data.Ranges.Range a)
instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.Ranges.Range a)
instance (GHC.Classes.Ord a, GHC.Internal.Show.Show a) => GHC.Internal.Show.Show (Data.Ranges.Range a)
instance (GHC.Classes.Ord a, GHC.Internal.Show.Show a) => GHC.Internal.Show.Show (Data.Ranges.Ranges a)
