!$Y      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Safe27I_ 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 u5Safe27I_  data-intervalThe intervals (i.e.1 connected and convex subsets) over real numbers R. data-interval_Boundary of an interval may be open (excluding an endpoint) or closed (including an endpoint).  data-intervalLower endpoint (i.e.7 greatest lower bound) of the interval, together with B information. The result is convenient to use as an argument for  .  data-intervalUpper endpoint (i.e.4 least upper bound) of the interval, together with B information. 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)SafeIX_Xw)  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 interval single point? 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.00 data-intervalDoes there exist an x in X, y in Y such that x  y? Since 1.0.11 data-intervalDoes there exist an x in X, y in Y such that x  y? Since 1.0.12 data-intervalDoes there exist an x in X, y in Y such that x  y?3 data-intervalDoes there exist an x in X, y in Y such that x  y?4 data-intervalDoes there exist an x in X, y in Y such that x  y? Since 1.0.05 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 u8  !"#$%&'()*+,-./0123451    $%&()'*,.230+-/451#!"5555$4%4&4'4(4)4*4+4,4-4.4/4041424344454(c) Masahiro Sakai 2011-2014 BSD-stylemasahiro.sakai@gmail.com provisional6non-portable (ScopedTypeVariables, DeriveDataTypeable)Safe2X,= 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]A data-interval!left-closed right-open interval [l, u)B data-intervalopen interval (l, u)C data-intervalwhole real number line (-", ")D data-intervalsingleton set [x,x]E data-intervalintersection of two intervalsF data-interval$intersection of a list of intervals.G data-intervalconvex hull of two intervalsH data-interval#convex hull of a list of intervals.I data-intervalmapMonotonic f i is the image of i under f, where f$ must be a strict monotone function.J data-intervalIs the interval empty?K data-intervalIs the interval single point?L data-intervalIs the element in the interval?M data-interval#Is the element not in the interval?N data-intervalIs this a subset? (i1 `N` i2) tells whether i1 is a subset of i2.O data-intervalIs this a proper subset? (i.e. a subset but not equal).P data-interval7Width of a interval. Width of an unbounded interval is  undefined.Q data-intervalBpick up an element from the interval if the interval is not empty.R data-intervalR: returns the simplest rational number within the interval. An integer y is said to be simpler than another y' if  y <=  y' (see also   and ")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-intervalFor all x in X, y in Y. x  y?V data-intervalFor all x in X, y in Y. x  y?W data-intervalFor all x in X, y in Y. x  y?X data-intervalFor all x in X, y in Y. 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-intervalDoes there exist an x in X, y in Y such that x  y?b data-intervalDoes there exist an x in X, y in Y such that x  y?c data-intervalDoes there exist an x in X, y in Y such that x  y?d data-intervalDoes there exist an x in X, y in Y such that x  y?e data-intervalConvert the interval to  data type.f data-intervalConversion from  data type.g data-intervalGiven a  I over R, compute the smallest  J such that I " J.h 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 uA data-interval lower bound l data-interval upper bound uB data-interval lower bound l data-interval upper bound u;=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgh4?@ABCDJKLMNO=>PSTUWXVY[]ab_Z\^cd`EFGHIQRefgh@5A5B5S4T4U4V4W4X4Y4Z4[4\4]4^4_4`4a4b4c4d4(c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com provisionalUnon-portable (CPP, ScopedTypeVariables, TypeFamilies, DeriveDataTypeable, MultiWayIf) Trustworthy 2HIVX_`o data-interval)A set comprising zero or more non-empty,  disconnected intervals.MAny connected intervals are merged together, and empty intervals are ignored.p data-intervalwhole real number line (-", ")q data-intervalempty interval setr data-intervalsingle intervals data-intervalIs the interval set empty?t data-interval#Is the element in the interval set?u data-interval'Is the element not in the interval set?v data-intervalIs this a subset? (is1 `v` is2) tells whether is1 is a subset of is2.w data-intervalIs this a proper subset? (i.e. a subset but not equal).x data-interval"convex hull of a set of intervals.y data-intervalComplement the interval set.z data-interval,Insert a new interval into the interval set.{ data-interval)Delete an interval from the interval set.| data-intervalunion of two interval sets} data-interval union of a list of interval sets~ 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-interval2Build 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.opqrstuvwxyz{|}~opqrstuvwxyz{|}~ (c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com provisionalqnon-portable (CPP, ScopedTypeVariables, TypeFamilies, DeriveDataTypeable, MultiWayIf, GeneralizedNewtypeDeriving) Trustworthy 2HIMVX_`* data-interval<A Map from non-empty, disjoint intervals over k to values a.Unlike o, 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-interval~Delete 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-interval 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 @. 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-intervalSConvert the map to a list of key/value pairs where the keys are in ascending order. data-intervalTConvert 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.29 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.1*(c) Masahiro Sakai 2016 BSD-stylemasahiro.sakai@gmail.com provisionalportableSafe1*      !"#$%&'()*+,-./0123456789:;<=>?@ABC* !"#$%'(D+,-./0123456789:;<EFGHIJKLMNO "#$%PQRSTUVWXYZ[\]^_`abcdefghi j k l " # m n P    R o S p q r T s U t V  u v w x y z { Y Z [ W | } ~  RopqrstuvW|  j*data-interval-2.0.0-4TzdefihhAV9vmIbaVdTjAData.IntegerInterval Data.IntervalData.IntervalSetData.IntervalMap.StrictData.IntervalMap.LazyData.IntegerInterval.InternalData.Interval.Internal Data.RatioapproxRationalData.IntervalMap.BaseIntegerInterval lowerBound upperBound<=..<=emptyIntervalBoundaryOpenClosed lowerBound' upperBound'interval<..<=<=..<<..<whole singleton intersection intersectionshullhullsnull isSingletonmember 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 denominatorghc-prim GHC.Classes<<===/=>=> isInfiniteisFiniteinfExtendedFiniteGHC.Errerror GHC.MaybeJustNothing Data.Foldablefoldl GHC.TypesTrue