Îõ³h$9\5ö      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹Œ*Implementation of Allen's interval algebra(c) NoviSci, Inc 2020BSD3bsaul@novisci.com experimentalNone >?ÀÁÂÄÙì<>interval-algebraThe 9 typeclass provides methods for (possibly) combining two Cs.interval-algebraMaybe form a new C by the union of two Cs that .interval-algebraIf x is  y, then form a new Just Interval a, from the interval in the "gap" between x and y from the B of x to the A of y . Otherwise, .interval-algebraIf x is  y , return f x appended to f y. Otherwise, return K of x and y (wrapped in fÈ). This is useful for (left) folding over an *ordered* container of Interval#s and combining intervals when x is *not*  y.interval-algebraForms a Žâ new interval from the intersection of two intervals, provided the intervals are not disjoint.interval-algebraThe : typeclass provides functions to determine the size of an >$ type and to resize an 'Interval a'.interval-algebra*The smallest duration for an 'Interval a'.interval-algebra Gives back a  based on the input's type.interval-algebraDetermine the duration of an 'i a'. interval-algebra Shifts an a. Most often, the b will be the same type as a. But for example, if a is  then b could be . interval-algebra!Takes the difference between two a to return a b. interval-algebraThe  ª typeclass specifies the functions and relational operators for interval-based temporal logic. The typeclass defines the relational operators for types that contain an  'Interval a'', plus other useful utilities such as ), ,, and %. interval-algebra Compare two i a to determine their 0. interval-algebraMaps an 0) to its corresponding predicate function.interval-algebraGiven a set of 0s return a list of . functions corresponding to each relation.interval-algebra6Forms a predicate function from the union of a set of 0s.interval-algebra:Shortcut to creating a 'Set IntervalRelation' from a list.interval-algebraïCompose two interval relations according to the rules of the algebra. The rules are enumerated according to  Ähttps://thomasalspaugh.org/pub/fnd/allen.html#BasicCompositionsTable this table.interval-algebra1Finds the complement of a 'Set IntervalRelation'.interval-algebraFind the intersection of two ‘s of 0s.interval-algebraFind the union of two ‘s of 0s.interval-algebra/Find the converse of a 'Set IntervalRelation'. interval-algebraDoes x equal y?interval-algebraDoes x meet y? Is y metBy x?interval-algebraDoes x meet y? Is y metBy x?interval-algebraIs x before y? Is x after y?interval-algebraIs x before y? Is x after y?interval-algebra'Does x overlap y? Is x overlapped by y?interval-algebra'Does x overlap y? Is x overlapped by y?interval-algebra"Does x start y? Is x started by y?interval-algebra"Does x start y? Is x started by y?interval-algebra Synonyms for  and  interval-algebra Synonyms for  and !interval-algebra$Does x finish y? Is x finished by y?"interval-algebra$Does x finish y? Is x finished by y?#interval-algebra Is x during y? Does x contain y?$interval-algebra Is x during y? Does x contain y?%interval-algebraÀCompose a list of interval relations with _or_ to create a new / i a. For example, unionPredicates [before, meets]æ creates a predicate function determining if one interval is either before or meets another interval.&interval-algebra2Operator for composing the union of two predicates)interval-algebraAre x and y disjoint (, , , or )?*interval-algebra9Are x and y not disjoint; i.e. do they share any support?+interval-algebraA synonym for *.,interval-algebra4Is x entirely *within* the endpoints of y? That is, #, , !, or ?-interval-algebra Does x enclose y? That is, is y , x?.interval-algebra Synonym for ,./interval-algebra+Defines a predicate of two objects of type a.0interval-algebraThe 06 type enumerates the thirteen possible ways that two C a6 objects can relate according to the interval algebra. Meets, Metby x `meets` y y `metBy` x x: |-----| y: |-----|  Before, After x `before` y y `after` x !x: |-----| y: |-----| Overlaps, OverlappedBy !x `overlaps` y y `overlappedBy` x x: |-----| y: |-----| Starts, StartedBy x `starts` y y `startedBy` x x: |---| y: |-----| Finishes, FinishedBy x `finishes` y y `finishedBy` x x: |---| y: |-----| During, Contains x `during` y y `contains` x x: |-| y: |-----| Equal x `equal` y y `equal` x x: |-----| y: |-----| >interval-algebraThe >* typeclass defines how to get and set the CÉ content of a data structure. It also includes functions for getting the A and B this data.?interval-algebraGet the interval from an i a@interval-algebraSet the interval in an i aAinterval-algebraAccess the ends of an i a .Binterval-algebraAccess the ends of an i a .Cinterval-algebraAn C a is a pair of as  (x, y) \text{ where } x < y. The > class provides a safe D function that returns a ’ error if y < x and EÀ as constructor for creating an interval that may not be valid. Dinterval-algebraSafely parse a pair of as to create an C a.Einterval-algebra Create a new C a. This function is not' safe as it does not enforce that x < y™. Use with caution. It is meant to be helper function in early prototyping of this package. This function may be deprecated in future releases.Finterval-algebra-Resize an 'i a' to by expanding to "left" by l and to the "right" by r. In the case that l or r are less than a , the respective endpoints are unchanged. Ginterval-algebraExpands an 'i a' to left by i.Hinterval-algebraExpands an 'i a' to right by i.Iinterval-algebra%Safely creates an 'Interval a' using x as the A and adding max moment dur to x as the B.Jinterval-algebra%Safely creates an 'Interval a' using x as the B and adding negate max moment dur to x as the A.Kinterval-algebraCreates a new Interval spanning the extent x and y.Ninterval-algebraImposes a total ordering on C a! based on first ordering the A s then the Bs.Ì  ,&) !"#$ % '(*+-./0512346789:;<=>?@ABCDEFGHIJKÌ>?@AB ,&) !"#$ % '(*+-. CDE0512346789:;<=/FGHIJK,Functions for generating arbitrary intervals(c) NoviSci, Inc 2020BSD3bsaul@novisci.com experimentalNone>À^3Functions for operating on containers of Intervals.(c) NoviSci, Inc 2020BSD3bsaul@novisci.com experimentalNone>?À2a!binterval-algebra«Returns a container of intervals where any intervals that meet or share support are combined into one interval. *To work properly, the input should be sorted*. See c( for a version that works only on lists.ÆcombineIntervals [intInt 0 10, intInt 2 7, intInt 10 12, intInt 13 15][(0, 12),(13, 15)]cinterval-algebra§Returns a list of intervals where any intervals that meet or share support are combined into one interval. *To work properly, the input list should be sorted*. ÇcombineIntervals' [intInt 0 10, intInt 2 7, intInt 10 12, intInt 13 15][(0, 12),(13, 15)]dinterval-algebra¤Returns a (possibly empty) container of intervals consisting of the gaps between intervals in the input. *To work properly, the input should be sorted*. See e# for a version that returns a list.,gaps [intInt 1 5, intInt 8 12, intInt 11 14][(5, 8)]einterval-algebraÆReturns a (possibly empty) list of intervals consisting of the gaps between intervals in the input container. *To work properly, the input should be sorted*. This version outputs a list. See dÀ for a version that lifts the result to same input structure f.finterval-algebra Returns the " of each 'Intervallic i a' in the “ f.0durations [intInt 1 10, intInt 2 12, intInt 5 6][9,10,1]ginterval-algebraÂIn the case that x y are not disjoint, clips y to the extent of x.clip (intInt 0 5) (intInt 3 6) Just (3, 5)clip (intInt 0 3) (intInt 4 6)Nothinghinterval-algebraReturns a list of the 0Î between each consecutive pair of intervals. This the specialized form of i which can return any ”, • structure."relations [intInt 0 1, intInt 1 2][Meets]iinterval-algebraA generic form of h which can output any ” and •Ú structure. >>> (relations' [intInt 0 1, intInt 1 2]) :: [IntervalRelation Int] [Meets]jinterval-algebraApplies d& to all the non-disjoint intervals in x that are *not* disjoint from i. Intervals that  or are  i are g ped to i , so that all the intervals are , i. If there are no gaps, then  is returned.?gapsWithin (intInt 1 10) [intInt 0 5, intInt 7 9, intInt 12 15]Just [(5, 7),(9, 10)]kinterval-algebraGiven a predicate combinator, a predicate, and list of intervals, returns the input unchanged if the predicate combinator is True+. Otherwise, returns an empty list. See m and l for examples.linterval-algebra Returns the Æ if *none* of the element of input satisfy the predicate condition.#For example, the following returns 2 because none of the intervals in the input list  (3, 5).?ÀÁÂ5¦„interval-algebraAn  Interval a% paired with some other data of type b.…interval-algebraMake a paired interval. †interval-algebra,Gets the data (i.e. non-interval) part of a PairedInterval.‡interval-algebra3Gets the intervals from a list of paired intervals.ˆinterval-algebra¥Takes a predicate of intervals and a predicate on the data part of a paired interval to create a single predicate such that both input predicates should hold.Šinterval-algebraÓDefines A total ordering on 'PairedInterval b a' based on the 'Interval a' part.„…†‡ˆ„…†‡ˆ Safe-Inferred5ᙚ›œžŸ ¡      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•“”–—˜™š›œžŸ“ ¡“¢£“¢¤“¢¥¦§¨“©ª“©«¬­®¯°±²³´-interval-algebra-0.6.1-4fBF2BaDmcZE9W5pCTefbrIntervalAlgebraIntervalAlgebra.Arbitrary!IntervalAlgebra.IntervalUtilitiesIntervalAlgebra.PairedIntervalPaths_interval_algebraIntervalCombinable.+.><<+> intersectIntervalSizeablemomentmoment'durationadddiffIntervalAlgebraicrelate predicate' predicates predicatetoSetcompose complement intersectionunionconverseequalsmeetsmetBybeforeafteroverlaps overlappedBystarts startedByprecedes precededByfinishes finishedByduringcontainsunionPredicates<|>disjointRelationswithinRelationsdisjoint notDisjointconcurwithinenclose enclosedByComparativePredicateOfIntervalRelationMeetsMetByBeforeAfterOverlaps OverlappedByStarts StartedByFinishes FinishedByDuringContainsEquals Intervallic getInterval setIntervalbeginendInterval parseIntervalunsafeIntervalexpandexpandlexpandr beginervalenderval extenterval$fIntervallicIntervala$fShowInterval $fOrdInterval$fOrdIntervalRelation$fEnumIntervalRelation$fBoundedIntervalRelation$fIntervalAlgebraicIntervalDay"$fIntervalAlgebraicIntervalInteger$fIntervalAlgebraicIntervalInt$fIntervalSizeableDayInteger $fIntervalSizeableIntegerInteger$fIntervalSizeableIntInt$fIntervalCombinableDay$fIntervalCombinableInteger$fIntervalCombinableInt$fEqIntervalRelation$fShowIntervalRelation$fReadIntervalRelation $fEqInterval$fArbitraryInterval$fArbitraryDay$fArbitraryInterval0combineIntervalscombineIntervals'gapsgaps' durationsclip relations relations' gapsWithin nothingIf nothingIfNone nothingIfAny nothingIfAllcompareIntervalsfilterOverlapsfilterOverlappedBy filterBefore filterAfter filterStartsfilterStartedByfilterFinishesfilterFinishedBy filterMeets filterMetBy filterDuringfilterContains filterEqualsfilterDisjointfilterNotDisjoint filterConcur filterWithin filterEnclosefilterEnclosedBy$fSemigroupBoxPairedIntervalmkPairedIntervalpairData intervalsmakePairPredicate$$fIntervalAlgebraicPairedIntervalInt$fOrdPairedInterval$fIntervallicPairedIntervala$fEqPairedIntervalbase GHC.MaybeNothingJust time-1.9.3Data.Time.Calendar.DaysDayghc-prim GHC.TypesIntcontainers-0.6.2.1Data.Set.InternalSet Data.EitherLeftGHC.BaseFunctor ApplicativeMonoid'witherable-0.4.1-8uH4Z4eydB8I1J1GFp0Bu3 Witherable Filterable Data.Foldableanyallversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName