All Versions
38
Latest Version
Avg Release Cycle

Latest Release

Changelog History
Page 4
Changelog History
Page 4

v0.6.0 Changes
 Generalizes the
IntervalAlgebraic
class to work on any data structure that contains an interval (not just intervals themselves). This is possible by modification to theIntervallic
class, which now works in part as lens withgetInterval
andsetInterval
functions. This change allows users to define their own type which contains an interval get all the interval algebraic operation on that new type. The utility of this generalization can be seen in thePairedInterval
module, which defines a parameterized type for interval paired with some other data.  Eliminates the
Moment
class and combined it with theIntervalSizeable
class. Like theIntervalAlgebraic
class, theIntervalSizeable
class no longer depends on theInterval
type, but its functions likeduration
now work on anyIntervallic i a
type.  Removes the
expand
,expandl
, andexpandr
functions from theIntervalSizeable
class are now just general functions. These function now work to modify the interval within anyIntervallic i a
type. Similarlybeginerval
,enderval
, andextenterval
were removed from the class; however, these functions only return theInterval
type.  Generalizes the
filter*
functions in the utilities module to operate on potentially different interval algebraic types. For example, infilterOverlaps x [ys]
,x
could be anInterval a
and theys
could be a list ofPairedInterval b a
, so you can filter a container of one interval algebraic type with another interval algebraic type.
 Generalizes the

v0.5.0 Changes
 โ Adds the
compose
function toIntervalAlgebraic
typeclass, thus now all the algebraic operations are available: complement, composition, converse, intersection, and union.  In the
IntervalAlgebraic
typeclass, addsconcur
as a synonym fornotDisjoint
;enclosedBy
as a synonym forwithin
; andenclose
as the converse ofenclosedBy
.  Generalizes the utilities
combineIntervals
,gaps
,gapsWithin
, andrelations
to work with anyApplicative
,Foldable
Monoid
(of whichList
is a case).  ๐ Changes the signature of
gapsWithin
to returnMaybe (f (Interval a))
, so that in the case that there are no gapsNothing
is returned.  Renames the
emptyIf*
function tonothingIf*
. LikegapsWithin
, these now returnMaybe (f (Interval a))
so thatNothing
is returned if the quantified predicated is true.  โ Removes the
IntervalFilterable
typeclass and these functions are now available in the utilities module without needing to specify instances for each container type you want to filter.
 โ Adds the

v0.4.0 Changes
 โ Adds utilities
emptyIfNone
,emptyIfAny
, andemptyIfAll
that apply predicates to a list of inputs. If none, any, or all of the inputs meet the predicate, then the empty list is returned. Otherwise, the input is returned unmodified. These functions are generalized toMonoid
s, so they work on structures other than lists.  โ Adds
gapsWithin
function toIntervalUtilities
module that appliesgaps
to all intervals in the input list that are nondisjoint from the interval in the first argument.  ๐ Fixed bug in
combineIntervals
where intervals could fail to be combined properly becausefoldr
was being used instead offoldl'
.  โ Adds
intersect
function toIntervalCombinable
class that returns the (maybe) intersection of two intervals.  โ Adds
relations
utility function which returns a list of theIntervalRelations
between each consecutive pair of intervals in the input list.  ๐ Renames
in'
predicate towithin
. Also, renamesfilterIn'
tofilterWithin
.  โ Adds
predicate
function toIntervalAlgebraic
class to map anIntervalRelation
to its corresponding predicate function. Also addspredicates
to map a set ofIntervalRelation
s to a list of predicate functions.  โ Adds
intersection
,union
,converse
, andcomplement
methods toIntervalAlgebraic
for taking the respective operation onSet IntervalRelation
.  Instantiates
Bounded
,Enum
, andOrd
forIntervalRelation
, so that, for one, interval relations can be ordered and used inData.Set
. Uses the total ordering defined here, though in general, interval relations only have a partial order.  ๐ Renames
composeRelations
to the more accurateunionPredicates
.  โ Adds
<>
as operator for "union"ingComparativePredicateOf (Interval a)
, as instarts <> overlaps === unionPredicates [starts, overlaps]
.  โ Adds a
clip x y
function which clips the intervaly
to the extent ofx
, providedx
andy
are not disjoint.
 โ Adds utilities

v0.3.3 Changes
 ๐ Fixes bug in
expand
function
 ๐ Fixes bug in

v0.3.2 Changes
 ๐ Fixes bug in
filterNotDisjoint
 ๐ Fixes bug in

v0.3.1 Changes
 โ Adds the
diff
function to theIntervalSizeable
to make comparisons of endpoints easier.  โ Adds the
notDisjoint
relation to determine if two intervals share any support.  โ Adds
filterDisjoint
,filterNotDisjoint
, andfilterIn'
to theIntervalFilterable
class.
 โ Adds the

v0.3.0 Changes
 โ Adds
beginerval
andenderval
function toIntervalSizeable
class for safely creatingInterval
s given a begin (or end) and a duration.  ๐ Moves
moment
to its own typeclassMoment
, which is now a constraint onIntervalSizeable
.  โ Removes function exports from the
IntervalAlgebra.Arbitrary
module which where only meant to exported for the testing modules anyway.
 โ Adds

v0.2.0 Changes
 โ Adds
IntervalSizeable
class.  ๐ Moves
IntervalFilterable
class to main module and generalizes the container to anyFilterable
type.  โ Adds
IntervalAlgebra.IntervalAlgebraUtilities
module to collect various useful functions.  โ Adds
IntervalAlgebra.Arbitrary
module to provide functions for generating arbitrary intervals.
 โ Adds