


Description 
Ranged values


Synopsis 

data Ord a => Range a = Range {}   rangeOp :: Ord a => (Range a > Range a) > Range a > Range a   rangeOp2 :: Ord a => (Range a > Range a > Range a) > Range a > Range a > Range a   mapMonotonic :: (Ord a, Ord b) => (a > b) > Range a > Range b   rangeMul :: (Ord a, Num a) => Range a > Range a > Range a   emptyRange :: (Ord a, Num a) => Range a   fullRange :: Ord a => Range a   range :: Ord a => a > a > Range a   rangeByRange :: Ord a => Range a > Range a > Range a   singletonRange :: Ord a => a > Range a   naturalRange :: (Ord a, Num a) => Range a   negativeRange :: (Ord a, Num a) => Range a   rangeSize :: (Ord a, Num a) => Range a > Maybe a   isEmpty :: Ord a => Range a > Bool   isFull :: Ord a => Range a > Bool   isBounded :: Ord a => Range a > Bool   isSingleton :: Ord a => Range a > Bool   isSubRangeOf :: Ord a => Range a > Range a > Bool   isNatural :: (Ord a, Num a) => Range a > Bool   isNegative :: (Ord a, Num a) => Range a > Bool   inRange :: Ord a => a > Range a > Bool   rangeGap :: (Ord a, Num a) => Range a > Range a > Range a   (\/) :: Ord a => Range a > Range a > Range a   liftMaybe2 :: (a > a > a) > Maybe a > Maybe a > Maybe a   (/\) :: Ord a => Range a > Range a > Range a   disjoint :: (Ord a, Num a) => Range a > Range a > Bool   rangeLess :: Ord a => Range a > Range a > Bool   rangeLessEq :: Ord a => Range a > Range a > Bool   rangeAddUnsigned :: (Ord a, Num a, Bounded a) => Range a > Range a > Range a   rangeAddSigned :: (Ord a, Num a, Bounded a, Bits a) => Range a > Range a > Range a   rangeSubUnsigned :: (Ord a, Num a, Bounded a) => Range a > Range a > Range a   rangeNegUnsigned :: (Ord a, Num a, Bounded a) => Range a > Range a   rangeNegSigned :: (Ord a, Num a, Bounded a) => Range a > Range a   rangeOrUnsignedCheap :: (Ord a, Num a, Bounded a) => Range a > Range a > Range a   minOrUnsigned :: (Ord a, Num a, Bits a) => a > a > a > a > a   maxOrUnsigned :: (Ord a, Num a, Bits a) => a > a > a > a > a   rangeOrUnsignedAccurate :: (Ord a, Num a, Bits a, Bounded a) => Range a > Range a > Range a   rangeAndUnsignedCheap :: (Ord a, Num a, Bounded a) => Range a > Range a > Range a   rangeXorUnsigned :: (Ord a, Num a, Bounded a) => Range a > Range a > Range a   rangeProp1 :: (Ord a, Bounded a) => (a > a > Range a) > Range a > Range a   rangeProp2 :: (Ord a, Bounded a) => (a > a > a > a > Range a) > Range a > Range a > Range a   rangeMax :: Ord a => Range a > Range a > Range a   rangeMin :: Ord a => Range a > Range a > Range a   rangeMod :: (Num a, Ord a, Enum a) => Range a > Range a > Range a   rangeRem :: (Num a, Ord a, Enum a) => Range a > Range a > Range a   showBound :: Show a => Maybe a > String   showRange :: (Show a, Ord a) => Range a > String   prop_arith1 :: (forall a. Num a => a > a) > Range Int > Property   prop_arith2 :: (forall a. Num a => a > a > a) > Range Int > Range Int > Property   rangePropagationSafetyPre :: (Random a, Ord a, Show a, Bounded a, Random b, Ord b, Show b, Bounded b, Ord c) => (a > b > c) > (Range a > Range b > Range c) > (a > b > Bool) > Range a > Range b > Property   rangePropSafety1 :: (Ord a, Show a, Random a, Bounded a, Ord b) => (a > b) > (Range a > Range b) > Range a > Property   uppBound :: (Bounded a, Ord a) => Range a > a   lowBound :: (Bounded a, Ord a) => Range a > a   fromRange :: (Random a, Bounded a, Ord a) => Range a > Gen a 


Documentation 


Constructors   Instances  





































Checks whether a range is a subrange of the natural numbers.



Checks whether a range is a subrange of the negative numbers.















r1 `rangeLess` r2: Checks if all elements of r1 are less than all elements of r2.



r1 `rangeLessEq` r2: Checks if all elements of r1 are less than or equal to all elements of
r2.



rangeAddUnsigned correctly and accurately propagates range
information through an unsigned addition. Code is borrowed from
Hacker's Delight.



rangeAddSigned correctly and accurately propagates range
information through a signed addition. Code is borrowed from
Hacker's Delight.



rangeSubUnsigned propagates range information through unsigned
subtraction. Code is borrowed from Hacker's Delight



Propagates range information through unsigned negation. Code from
Hacker's Delight



Propagates range information through signed negation. Code from
Hacker's Delight.



Cheap and inaccurate range propagation for .. on unsigned numbers.
Code from Hacker's Delight



Accurate lower bound for .. on unsigned numbers.



Accurate upper bound for .. on unsigned numbers.





Cheap and inaccurate range propagation for .&. on unsigned numbers.
Code from Hacker's Delight



Range propagation for xor on unsigned numbers.
Code from Hacker's Delight



Auxiliary function for writing range propagation
functions. Especially suitable for the code borrowed from Hacker's
Delight.



Auxiliary function for writing range propagation functions for
two argument functions. Especially suitable for the code borrowed
from Hacker's Delight.



Propagates range information through max.



Analogous to rangeMax



Propagates range information through mod.
Note that we assume Haskell semantics for mod.



Propagates range information through rem.
Note that we assume Haskell semantics for rem.




















Produced by Haddock version 2.6.1 