interval-patterns 0.4.0.0 → 0.5.0.0
raw patch · 4 files changed
+24/−18 lines, 4 files
Files
- CHANGELOG.md +8/−1
- interval-patterns.cabal +1/−1
- src/Data/Calendar.hs +1/−1
- src/Data/Interval/Layers.hs +14/−15
CHANGELOG.md view
@@ -1,6 +1,13 @@ # Revision history for interval-patterns -## 0.4.0.0 - 2022-07-*+## 0.5.0.0 - 2022-08-04++* fix direction of `diffUTCTime` in `erlangs`+* Remove export of `Data.Interval.Layers.nestingsAsc`+ * also fix its implementation+ * rely on `nestings` for external use++## 0.4.0.0 - 2022-07-26 * New functions * unidirectional `pattern (:--:)` for matching finite intervals regardless of `Bound`
interval-patterns.cabal view
@@ -1,6 +1,6 @@ cabal-version: 3.0 name: interval-patterns-version: 0.4.0.0+version: 0.5.0.0 author: Melanie Brown synopsis: Intervals, and monoids thereof description: Please see the README at https://github.com/mixphix/interval-patterns
src/Data/Calendar.hs view
@@ -45,7 +45,7 @@ -- all of the simultaneous happenings over a given span (on average)? erlangs :: (Real n) => Timeframe -> Event n -> Maybe Rational erlangs ix e =- let diff = realToFrac <<$>> diffUTCTime+ let diff = realToFrac <<$>> flip diffUTCTime in liftA2 (/) (Layers.integrate diff (realToFrac . getSum) ix e)
src/Data/Interval/Layers.hs view
@@ -21,7 +21,6 @@ -- ** Helper functions nestings,- nestingsAsc, ) where import Algebra.Lattice.Levitated@@ -42,7 +41,7 @@ instance (Ord x, Semigroup y) => Semigroup (Layers x y) where Layers s1 <> Layers s2 = let s = Map.toAscList $ Map.unionWith (<>) s1 s2- in Layers $ Map.fromAscList (nestingsAsc s)+ in Layers $ Map.fromList (nestingsAsc s) instance (Ord x, Semigroup y) => Monoid (Layers x y) where mempty = Layers mempty@@ -197,45 +196,45 @@ [(Interval x, y)] nestingsAsc = \case (i', iy) : (j', jy) : js -> case I.adjacency i' j' of- Before i j -> (i, iy) : nestingsAsc ((j, jy) : js)- Meets i j k -> (i, iy) : nestingsAsc ((j, iy <> jy) : (k, jy) : js)+ Before i j -> (i, iy) : nestings ((j, jy) : js)+ Meets i j k -> (i, iy) : nestings ((j, iy <> jy) : (k, jy) : js) Overlaps i j k ->- nestingsAsc $+ nestings $ (i, iy) : (j, iy <> jy) : (k, jy) : js Starts i j ->- nestingsAsc $+ nestings $ (i, iy <> jy) : (j, jy) : js During i j k ->- nestingsAsc $+ nestings $ (i, iy) : (j, iy <> jy) : (k, jy) : js Finishes i j ->- nestingsAsc $+ nestings $ (i, iy) : (j, iy <> jy) : js- Identical i -> (i, iy <> jy) : nestingsAsc js+ Identical i -> (i, iy <> jy) : nestings js FinishedBy i j ->- nestingsAsc $+ nestings $ (i, iy) : (j, iy <> jy) : js Contains i j k ->- nestingsAsc $+ nestings $ (i, iy) : (j, iy <> jy) : (k, jy) : js StartedBy i j ->- nestingsAsc $+ nestings $ (i, iy <> jy) : (j, jy) : js OverlappedBy i j k ->- nestingsAsc $+ nestings $ (i, iy) : (j, iy <> jy) : (k, jy) : js- MetBy i j k -> (i, iy) : nestingsAsc ((j, iy <> jy) : (k, jy) : js)- After i j -> (i, iy) : nestingsAsc ((j, jy) : js)+ MetBy i j k -> (i, iy) : nestings ((j, iy <> jy) : (k, jy) : js)+ After i j -> (i, iy) : nestings ((j, jy) : js) x -> x