!       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Safe2Ib data-intervalThe intervals (i.e.. connected and convex subsets) over integers (Z). data-intervalLower endpoint (i.e.( greatest lower bound) of the interval. of the empty interval is .! of a left unbounded interval is .; of an interval may or may not be a member of the interval. data-intervalUpper endpoint (i.e.$ least upper bound) of the interval. of the empty interval is ." of a right unbounded interval is ., of an interval is a member of the interval. data-intervalclosed interval [l,u] data-intervalempty (contradicting) interval data-interval lower bound l data-interval upper bound u5Safe2I data-intervalThe intervals (i.e.1 connected and convex subsets) over real numbers R. data-interval lowerBoundq of the interval and whether it is included in the interval. The result is convenient to use as an argument for  . data-interval upperBoundq of the interval and whether it is included in the interval. The result is convenient to use as an argument for  . data-intervalempty (contradicting) interval  data-intervalsmart constructor for   data-interval&lower bound and whether it is included data-interval&upper bound and whether it is included (c) Masahiro Sakai 2011-2013 BSD-stylemasahiro.sakai@gmail.com provisional;non-portable (CPP, ScopedTypeVariables, DeriveDataTypeable)SafeIXUf)  data-intervalEndpoints of intervals  data-intervalLower endpoint (i.e.( greatest lower bound) of the interval.  of the empty interval is . ! of a left unbounded interval is . ; of an interval may or may not be a member of the interval.  data-intervalUpper endpoint (i.e.$ least upper bound) of the interval.  of the empty interval is . " of a right unbounded interval is . ; of an interval may or may not be a member of the interval.  data-intervalclosed interval [l,u] data-interval!left-open right-closed interval (l,u] data-interval!left-closed right-open interval [l, u) data-intervalopen interval (l, u) data-intervalwhole real number line (-", ") data-intervalsingleton set x,x data-intervalintersection of two intervals data-interval$intersection of a list of intervals. Since 0.6.0 data-intervalconvex hull of two intervals data-interval#convex hull of a list of intervals. Since 0.6.0 data-intervalIs the interval empty? data-intervalIs the element in the interval? data-interval#Is the element not in the interval? data-intervalIs this a subset? (i1 `` i2) tells whether i1 is a subset of i2. data-intervalIs this a proper subset? (i.e. a subset but not equal). data-interval1Does the union of two range form a connected set? Since 1.3.0 data-interval7Width of a interval. Width of an unbounded interval is  undefined. data-intervalBpick up an element from the interval if the interval is not empty. data-interval: returns the simplest rational number within the interval.A rational number y is said to be simpler than another y' if ( y) <=  ( y'), and y <=  y'. (see also ) Since 0.4.0  data-intervalmapMonotonic f i is the image of i under f, where f$ must be a strict monotone function.! data-intervalFor all x in X, y in Y. x  y?" data-intervalFor all x in X, y in Y. x  y?# data-intervalFor all x in X, y in Y. x  y?$ data-intervalFor all x in X, y in Y. x  y? Since 1.0.1% data-intervalFor all x in X, y in Y. x  y?& data-intervalFor all x in X, y in Y. x  y?' data-intervalDoes there exist an x in X, y in Y such that x  y?( data-intervalDoes there exist an x in X, y in Y such that x  y? Since 1.0.0) data-intervalDoes there exist an x in X, y in Y such that x  y?* data-intervalDoes there exist an x in X, y in Y such that x  y? Since 1.0.0+ data-intervalDoes there exist an x in X, y in Y such that x  y? Since 1.0.0, data-intervalDoes there exist an x in X, y in Y such that x  y? Since 1.0.0- data-intervalDoes there exist an x in X, y in Y such that x  y? Since 1.0.1. data-intervalDoes there exist an x in X, y in Y such that x  y? Since 1.0.1/ data-intervalDoes there exist an x in X, y in Y such that x  y?0 data-intervalDoes there exist an x in X, y in Y such that x  y?1 data-intervalDoes there exist an x in X, y in Y such that x  y? Since 1.0.02 data-intervalDoes there exist an x in X, y in Y such that x  y? Since 1.0.0  data-interval lower bound l data-interval upper bound u data-interval lower bound l data-interval upper bound u data-interval lower bound l data-interval upper bound u data-interval lower bound l data-interval upper bound u5  !"#$%&'()*+,-./012.  !"#%&$')+/0-(*,12.  5555!4"4#4$4%4&4'4(4)4*4+4,4-4.4/4041424(c) Masahiro Sakai 2011-2014 BSD-stylemasahiro.sakai@gmail.com provisional6non-portable (ScopedTypeVariables, DeriveDataTypeable)Safe2XO+: data-intervalq of the interval and whether it is included in the interval. The result is convenient to use as an argument for <.; data-intervalq of the interval and whether it is included in the interval. The result is convenient to use as an argument for <.< data-intervalsmart constructor for = data-interval!left-open right-closed interval (l,u]> data-interval!left-closed right-open interval [l, u)? data-intervalopen interval (l, u)@ data-intervalwhole real number line (-", ")A data-intervalsingleton set x,xB data-intervalintersection of two intervalsC data-interval$intersection of a list of intervals.D data-intervalconvex hull of two intervalsE data-interval#convex hull of a list of intervals.F data-intervalmapMonotonic f i is the image of i under f, where f$ must be a strict monotone function.G data-intervalIs the interval empty?H data-intervalIs the element in the interval?I data-interval#Is the element not in the interval?J data-intervalIs this a subset? (i1 `J` i2) tells whether i1 is a subset of i2.K data-intervalIs this a proper subset? (i.e. a subset but not equal).L data-interval7Width of a interval. Width of an unbounded interval is  undefined.M data-intervalBpick up an element from the interval if the interval is not empty.N data-intervalN: returns the simplest rational number within the interval. An integer y is said to be simpler than another y' if  y <=  y' (see also approxRational and )O data-intervalFor all x in X, y in Y. x  y?P data-intervalFor all x in X, y in Y. x  y?Q data-intervalFor all x in X, y in Y. x  y?R data-intervalFor all x in X, y in Y. x  y?S data-intervalFor all x in X, y in Y. x  y?T data-intervalFor all x in X, y in Y. x  y?U data-intervalDoes there exist an x in X, y in Y such that x  y?V data-intervalDoes there exist an x in X, y in Y such that x  y?W data-intervalDoes there exist an x in X, y in Y such that x  y?X data-intervalDoes there exist an x in X, y in Y such that x  y?Y data-intervalDoes there exist an x in X, y in Y such that x  y?Z data-intervalDoes there exist an x in X, y in Y such that x  y?[ data-intervalDoes there exist an x in X, y in Y such that x  y?\ data-intervalDoes there exist an x in X, y in Y such that x  y?] data-intervalDoes there exist an x in X, y in Y such that x  y?^ data-intervalDoes there exist an x in X, y in Y such that x  y?_ data-intervalDoes there exist an x in X, y in Y such that x  y?` data-intervalDoes there exist an x in X, y in Y such that x  y?a data-intervalConvert the interval to  data type.b data-intervalConversion from  data type.c data-intervalGiven a  I over R, compute the smallest  J such that I " J.d data-intervalGiven a  I over R, compute the largest  J such that J " I.< data-interval&lower bound and whether it is included data-interval&upper bound and whether it is included= data-interval lower bound l data-interval upper bound u> data-interval lower bound l data-interval upper bound u? data-interval lower bound l data-interval upper bound u7:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcd0<=>?@AGHIJK:;LOPQSTRUWY]^[VXZ_`\BCDEFMNabcd=5>5?5O4P4Q4R4S4T4U4V4W4X4Y4Z4[4\4]4^4_4`4(c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com provisionalUnon-portable (CPP, ScopedTypeVariables, TypeFamilies, DeriveDataTypeable, MultiWayIf) Trustworthy 2HIVX`k data-interval)A set comprising zero or more non-empty,  disconnected intervals.MAny connected intervals are merged together, and empty intervals are ignored.l data-intervalwhole real number line (-", ")m data-intervalempty interval setn data-intervalsingle intervalo data-intervalIs the interval set empty?p data-interval#Is the element in the interval set?q data-interval'Is the element not in the interval set?r data-intervalIs this a subset? (is1 `r` is2) tells whether is1 is a subset of is2.s data-intervalIs this a proper subset? (i.e. a subset but not equal).t data-interval"convex hull of a set of intervals.u data-intervalComplement the interval set.v data-interval,Insert a new interval into the interval set.w data-interval)Delete an interval from the interval set.x data-intervalunion of two interval setsy data-interval union of a list of interval setsz data-interval!intersection of two interval sets{ data-interval'intersection of a list of interval sets| data-intervaldifference of two interval sets} data-interval.Build a interval set from a list of intervals.~ data-interval3Build a map from an ascending list of intervals.  The precondition is not checked. data-interval0Convert a interval set into a list of intervals. data-intervalCConvert a interval set into a list of intervals in ascending order. data-intervalDConvert a interval set into a list of intervals in descending order. klmnopqrstuvwxyz{|}~k lmnopqrstuvwxyz{|}~(c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com provisionalqnon-portable (CPP, ScopedTypeVariables, TypeFamilies, DeriveDataTypeable, MultiWayIf, GeneralizedNewtypeDeriving) Trustworthy 2HIMVX`1* data-interval<A Map from non-empty, disjoint intervals over k to values a.Unlike k, g never merge adjacent mappings, even if adjacent intervals are connected and mapped to the same value. data-intervalFind the value at a key. Calls # when the element can not be found. data-intervalSame as . data-intervalIs the map empty? data-interval)Is the key a member of the map? See also . data-interval-Is the key not a member of the map? See also . data-interval%Lookup the value at a key in the map.4The function will return the corresponding value as ( value), or  if the key isn't in the map. data-intervalThe expression ( def k map) returns the value at key k or returns default value def! when the key is not in the map. data-intervalconvex hull of key intervals. data-intervalThe empty map. data-interval(The map that maps whole range of k to a. data-intervalA map with a single interval. data-intervalinsert a new key and value in the map. If the key is already present in the map, the associated value is replaced with the supplied value. data-interval<Insert with a function, combining new value and old value.  f key value mp- will insert the pair (interval, value) into mp\. If the interval overlaps with existing entries, the value for the entry is replace with (f new_value old_value). data-intervalDelete an interval and its value from the map. When the interval does not overlap with the map, the original map is returned. data-intervalUpdate a value at a specific interval with the result of the provided function. When the interval does not overlatp with the map, the original map is returned. data-intervalThe expression ( f i map) updates the value x at i (if it is in the map). If (f x) is %, the element is deleted. If it is ( y ), the key i is bound to the new value y. data-intervalThe expression ( f i map) alters the value x at i, or absence thereof. 7 can be used to insert, delete, or update a value in a . data-intervalThe expression ( t1 t2!) takes the left-biased union of t1 and t2. It prefers t1' when overlapping keys are encountered, data-interval Union with a combining function. data-interval!The union of a list of maps: ( ==   ). data-interval=The union of a list of maps, with a combining operation: ( f ==  ( f) ). data-interval@Return elements of the first map not existing in the second map. data-interval[Intersection of two maps. Return data in the first map for the keys existing in both maps. data-interval'Intersection with a combining function. data-interval*Map a function over all values in the map. data-intervalmapKeys f s! is the map obtained by applying f to each key of s. f6 must be strictly monotonic. That is, for any values x and y, if x < y then f x < f y. data-intervalDReturn all elements of the map in the ascending order of their keys. data-interval>Return all keys of the map in ascending order. Subject to list data-interval An alias for A. Return all key/value pairs in the map in ascending key order.  data-intervalThe set of all keys of the map. data-interval.Convert the map to a list of key/value pairs.  data-intervalTConvert the map to a list of key/value pairs where the keys are in ascending order.  data-intervalUConvert the map to a list of key/value pairs where the keys are in descending order.  data-intervalBuild a map from a list of key/value pairs. If the list contains more than one value for the same key, the last value for the key is retained. data-intervalEBuild a map from a list of key/value pairs with a combining function. data-interval.Filter all values that satisfy some predicate. data-intervalThe expression ( i map) is a triple (map1,map2,map3) where the keys in map1 are smaller than i, the keys in map2 are included in i, and the keys in map3 are larger than i. data-intervalThis function is defined as ( =  (==)). data-intervalThe expression ( f t1 t2 ) returns  if all keys in t1 are in tree t2 , and when f returns + when applied to their respective values.  data-intervalDIs this a proper submap? (ie. a submap but not equal). Defined as ( =  (==)). data-intervalHIs this a proper submap? (ie. a submap but not equal). The expression ( f m1 m2 ) returns  when m1 and m2 are not equal, all keys in m1 are in m2 , and when f returns * when applied to their respective values.3 9 9 (c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com provisional*non-portable (BangPatterns, TupleSections)SafeP`  data-interval(The map that maps whole range of k to a. data-intervalA map with a single interval. data-intervalinsert a new key and value in the map. If the key is already present in the map, the associated value is replaced with the supplied value. data-interval<Insert with a function, combining new value and old value.  f key value mp- will insert the pair (interval, value) into mp\. If the interval overlaps with existing entries, the value for the entry is replace with (f new_value old_value). data-intervalUpdate a value at a specific interval with the result of the provided function. When the interval does not overlatp with the map, the original map is returned. data-intervalThe expression ( f i map) updates the value x at i (if it is in the map). If (f x) is %, the element is deleted. If it is ( y ), the key i is bound to the new value y. data-intervalThe expression ( f i map) alters the value x at i, or absence thereof. 7 can be used to insert, delete, or update a value in a . data-interval Union with a combining function. data-interval=The union of a list of maps, with a combining operation: ( f ==  ( f) ). data-interval'Intersection with a combining function. data-interval*Map a function over all values in the map. data-intervalBuild a map from a list of key/value pairs. If the list contains more than one value for the same key, the last value for the key is retained. data-intervalEBuild a map from a list of key/value pairs with a combining function.2 + (c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com provisionalportableSafe;2 +           !"#$%&'()*+,-./0123456789:;<=>% "#?&'()*+,-./01234567@ABCDEFGHIJ  KLMNOPQRSTUVWXYZ[\]^_`abcdefghiK MjNklmOnPoQpqrstuvTUVRwxyz{|}MjklmnopqRw~~~~~~~e*data-interval-1.3.1-I76cxZqAwNd4kmCNfCm90JData.IntegerInterval Data.IntervalData.IntervalSetData.IntervalMap.StrictData.IntervalMap.LazyData.IntegerInterval.InternalData.Interval.InternalData.IntervalMap.BaseIntegerInterval lowerBound upperBound<=..<=emptyInterval lowerBound' upperBound'intervalEndPoint<..<=<=..<<..<whole singleton intersection intersectionshullhullsnullmember notMember isSubsetOfisProperSubsetOf isConnectedwidthpickupsimplestRationalWithin mapMonotonic=!>!=?>?>=??>??$fFractionalInterval $fNumInterval$fReadInterval$fShowInterval $fBoundedMeetSemiLatticeInterval $fBoundedJoinSemiLatticeInterval$fLatticeIntervalsimplestIntegerWithin toInterval fromIntervalfromIntervalOverfromIntervalUnder$fNumIntegerInterval$fReadIntegerInterval$fShowIntegerInterval'$fBoundedMeetSemiLatticeIntegerInterval'$fBoundedJoinSemiLatticeIntegerInterval$fLatticeIntegerInterval IntervalSetspan complementinsertdeleteunionunions differencefromList fromAscListtoList toAscList toDescList$fIsListIntervalSet$fFractionalIntervalSet$fNumIntervalSet$fSemigroupIntervalSet$fMonoidIntervalSet#$fBoundedMeetSemiLatticeIntervalSet#$fBoundedJoinSemiLatticeIntervalSet$fLatticeIntervalSet$fHashableIntervalSet$fNFDataIntervalSet$fDataIntervalSet$fReadIntervalSet$fShowIntervalSet$fEqIntervalSet IntervalMap!\\lookupfindWithDefault insertWithadjustupdatealter unionWith unionsWithintersectionWithmapmapKeysMonotonicelemskeysassocskeysSet fromListWithfiltersplit isSubmapOf isSubmapOfByisProperSubmapOfisProperSubmapOfBy-extended-reals-0.2.3.0-4E0Ng9CMVR8JvkxsPpa50TData.ExtendedRealPosInfNegInfbaseGHC.NumabsGHC.Real numerator denominator Data.RatioapproxRationalghc-prim GHC.Classes<<===/=>=> isInfiniteisFiniteinfExtendedFiniteGHC.Errerror GHC.MaybeJustNothing Data.Foldablefoldl GHC.TypesTrue