h&@;      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Safe-Inferred"%&(-1interval-patterns Since the % constraints on the constructors for  prevent it from being , this will have to suffice.?interval-patternsSame as > but on the  of the underlying type.@interval-patternsGet the (A, B) bounds of an .Ainterval-patterns#Get the lower bound of an interval. lower = fst . boundsBinterval-patterns#Get the upper bound of an interval. upper = snd . boundsCinterval-patternsGet the lower bound of an interval (with the bound expressed at the term level).Dinterval-patternsGet the upper bound of an interval (with the bound expressed at the term level).Einterval-patternsGiven s, try to make an interval.Finterval-patternsGiven limits and 's, try to make an interval.Ginterval-patternsThe result of having compared the same two intervals in reverse order.Hinterval-patternsCalculate the  & between two intervals, according to  8https://en.wikipedia.org/wiki/Allen%27s_interval_algebraAllen.Iinterval-patterns%Get the convex hull of two intervals.hull (7 :|>: 8) (3 :|>: 4) (3 :|>: 8))hull (Bottom :<-|: Levitate 3) (4 :<>: 5)(Bottom :<->: Levitate 5)Jinterval-patterns5Get the convex hull of a non-empty list of intervals.Kinterval-patterns2Test whether a point is contained in the interval.Linterval-patterns3Create the closed-closed interval at a given point.Minterval-patterns7Get the infimum of an interval, weakening if necessary.Ninterval-patterns-Get the minimum of an interval, if it exists.Ointerval-patterns-Get the maximum of an interval, if it exists.Pinterval-patterns8Get the supremum of an interval, weakening if necessary.Qinterval-patterns'Open both bounds of the given interval.Rinterval-patterns(Close both bounds of the given interval.Sinterval-patterns?Make the interval open-closed, leaving the endpoints unchanged.Tinterval-patterns?Make the interval closed-open, leaving the endpoints unchanged.Uinterval-patterns;Make the lower bound open, leaving the endpoints unchanged.Vinterval-patterns=Make the lower bound closed, leaving the endpoints unchanged.Winterval-patterns;Make the upper bound open, leaving the endpoints unchanged.Xinterval-patterns=Make the upper bound closed, leaving the endpoints unchanged.[interval-patterns:Calculate the intersection of two intervals, if it exists. >>> intersect (2 :<>: 4) (3 :||: 5) Just (3 :|>: 4) >>> intersect (2 :<>: 4) (4 :||: 5) Nothing >>> intersect (1 :<>: 4) (2 :||: 3) Just (2 :||: 3) \interval-patterns*Get the union of two intervals, as either . >>> union (2 :||: 5) (5 :<>: 7) One (2 :|>: 7) >>> union (2 :||: 4) (5 :<>: 7) Two (2 :||: 4) (5 :<>: 7) ]interval-patterns O(n log n)'. Get the union of a list of intervals.This function uses  . See also ^.^interval-patternsO(n).. Get the union of a sorted list of intervals.8NOTE: The input condition is not checked. Use with care._interval-patterns1Take the complement of the interval, as possibly . >>> complement (3 :<>: 4) Just (Two (Bottom :|-|: Levitate 3) (Levitate 4 :|-|: Top)) Note that infinitely-open intervals will include in their result the points at infinity toward which they are infinite:  >>> complement (Levitate 3 : ->: Top) Just (Two (Bottom :|-|: Levitate 3) (Top :|-|: Top)) `interval-patterns8Remove all points of the second interval from the first. >>> difference Whole (3 :<>: 4) Just (Two (Bottom :|-|: Levitate 3) (Levitate 4 :|-|: Top)) >>> difference (1 :<>: 4) (2 :||: 5) Just (One (1 :<>: 2)) >>> difference (1 :|>: 4) (0 :||: 1) Just (One (1 :<>: 4)) >>> difference (1 :<>: 4) (0 :||: 1) Just (One (1 :<>: 4)) ainterval-patternsInfix synonym for `binterval-patterns>The difference of the union and intersection of two intervals. >>> symmetricDifference Whole (3 :<>: 4) Just (Two (Bottom :|-|: Levitate 3) (Levitate 4 :|-|: Top)) >>> symmetricDifference (1 :<>: 4) (2 :||: 5) Just (Two (1 :<>: 2) (4 :||: 5)) cinterval-patterns#Get the measure of an interval, or  if the interval is infinite. 5>>> measure (-1 :<>: 1) Just 2 >>> measure (Bottom : -: Levitate 1) Nothing dinterval-patternsApply a function to the lower, then upper, endpoint of an interval. >>> measuring const (-1 :<>: 1) Just (-1) >>> measuring (*) (4 :<>: 6) Just 24 measure == measuring subtracteinterval-patterns'Get the distance between two intervals. >>> hausdorff (3 :<>: 5) (6 :<>: 7) Just 1 >>> hausdorff (3 :<>: 5) Whole Just 0 finterval-patternsm f r( creates the closed interval centred at m with radius r.$For the open interval, simply write Q (x f y).ginterval-patternsFull containment.  !"&#$%'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefg10/.-65432,fFEL@ACBDNMPO<=>?QRSTUVWXYZ IJKGH[\]^_`abcdeg'()*+7"&#$%8 !9;: 5555.5/5051535455565 Safe-Inferred"%&(-1?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefg Safe-Inferred"%&(-1?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefg      !"#$$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~cdgifPng0interval-patterns-0.7.0.3-Jtty9Ezia9U9kg7EJ1DhMn Data.OneOrTwo Data.IntervalData.Interval.BorelData.Interval.LayersData.Timeframe Data.CalendarLayersOneOrTwoOneTwooneOrTwo $fEqOneOrTwo $fOrdOneOrTwo$fShowOneOrTwo$fReadOneOrTwo$fGenericOneOrTwo$fDataOneOrTwo$fFunctorOneOrTwo$fFoldableOneOrTwo$fTraversableOneOrTwo AdjacencyBeforeMeetsOverlapsStartsDuringFinishes Identical FinishedByContains StartedBy OverlappedByMetByAfterInterval SomeBoundBoundingOppositebound opposeBoundBoundMinInfSupMaxExtremumMinimumInfimumSupremumMaximumWhole:--::||::|>::<|::<>::---::|-|::|->::<-|::<->:oppositeunBound compareBoundsoppose unSomeBoundimapimapLev itraverse itraverseLevboundslowerupper lowerBound upperBoundinterval...converseAdjacency adjacencyhullhullswithinpointiinfiminimaxisupopenclose openclosed closedopen openLower closedLower openUpper closedUppersetLowersetUpper intersectunionunions unionsAsc complement difference\\symmetricDifferencemeasure measuring hausdorff+/- isSubsetOf $fOrdBound $fEqBound$fTraversableBound$fFoldableBound$fFunctorBound$fBoundingMaximum$fBoundingSupremum$fBoundingInfimum$fBoundingMinimum$fOrdSomeBound $fEqSomeBound$fGenericInterval$fDataInterval $fOrdInterval$fShowInterval $fEqAdjacency$fOrdAdjacency$fShowAdjacency$fGenericAdjacency$fDataAdjacency $fEqExtremum $fOrdExtremum$fEnumExtremum$fBoundedExtremum$fShowExtremum$fReadExtremum$fGenericExtremum$fDataExtremum $fEqIntervalBorelborel intervalSetempty singletonnullinsertwholeremove\-member notMembertruncate\= intersection intersections $fRingBorel$fSemiringBorel$fHeytingBorel$fBoundedJoinSemiLatticeBorel$fBoundedMeetSemiLatticeBorel$fLatticeBorel $fMonoidBorel$fSemigroupBorel $fEqBorel $fOrdBorel $fShowBorel$fGenericBorel $fDataBorelfromListtoListsquashpiledigbaseline integrate thicknessthickesttoStepFunctionnestings $fGroupLayers$fMonoidLayers$fSemigroupLayers $fEqLayers $fOrdLayers $fShowLayers$fFunctorLayers$fGenericLayers $fDataLayers TimeframelocalTimeframeAtlocalTimeframepureLocalTimeframedurationCalendar getCalendarEventevent eventSizeerlangscalendar!?! happeningAtcoalesce totalDuration$fMonoidCalendar$fSemigroupCalendar $fEqCalendar $fOrdCalendar$fShowCalendar:<-->::<--|::|-->::|--|:#lattices-2.2-4UxzjgWS3dr8rS99mZiWBBAlgebra.Lattice.LevitatedBottomTopghc-prim GHC.ClassesOrdbaseGHC.BaseFunctor LevitatedData.Traversable Traversable Data.OldListsort GHC.MaybeNothingAlgebra.HeytingHeyting$semirings-0.6-CQDqsWDC1uzKel2GfkPOYq Data.SemiringRing==>Algebra.Lattice\/containers-0.6.5.1Data.Set.InternalSet<> Data.Foldablefoldmempty time-1.11.1.1 Data.Time.Clock.Internal.UTCTimeUTCTime