module Data.IntervalMap
( module Data.IntervalMap.Lazy
, insertWith'
, insertWithKey'
, insertLookupWithKey'
, fold
, foldWithKey
) where
import Data.IntervalMap.Lazy
import qualified Data.IntervalMap.Lazy as L
import qualified Data.IntervalMap.Strict as S
insertWith' :: Ord k => (a -> a -> a) -> Interval k -> a -> IntervalMap k a -> IntervalMap k a
insertWith' :: forall k a.
Ord k =>
(a -> a -> a)
-> Interval k -> a -> IntervalMap k a -> IntervalMap k a
insertWith' = (a -> a -> a)
-> Interval k
-> a
-> IntervalMap (Interval k) a
-> IntervalMap (Interval k) a
forall k e v.
(Interval k e, Ord k) =>
(v -> v -> v) -> k -> v -> IntervalMap k v -> IntervalMap k v
S.insertWith
{-# INLINABLE insertWith' #-}
insertWithKey' :: Ord k => (Interval k -> a -> a -> a) -> Interval k -> a -> IntervalMap k a -> IntervalMap k a
insertWithKey' :: forall k a.
Ord k =>
(Interval k -> a -> a -> a)
-> Interval k -> a -> IntervalMap k a -> IntervalMap k a
insertWithKey' = (Interval k -> a -> a -> a)
-> Interval k
-> a
-> IntervalMap (Interval k) a
-> IntervalMap (Interval k) a
forall k e v.
(Interval k e, Ord k) =>
(k -> v -> v -> v) -> k -> v -> IntervalMap k v -> IntervalMap k v
S.insertWithKey
{-# INLINABLE insertWithKey' #-}
insertLookupWithKey' :: Ord k => (Interval k -> a -> a -> a) -> Interval k -> a -> IntervalMap k a
-> (Maybe a, IntervalMap k a)
insertLookupWithKey' :: forall k a.
Ord k =>
(Interval k -> a -> a -> a)
-> Interval k -> a -> IntervalMap k a -> (Maybe a, IntervalMap k a)
insertLookupWithKey' = (Interval k -> a -> a -> a)
-> Interval k
-> a
-> IntervalMap (Interval k) a
-> (Maybe a, IntervalMap (Interval k) a)
forall k e v.
(Interval k e, Ord k) =>
(k -> v -> v -> v)
-> k -> v -> IntervalMap k v -> (Maybe v, IntervalMap k v)
S.insertLookupWithKey
fold :: (a -> b -> b) -> b -> IntervalMap k a -> b
fold :: forall a b k. (a -> b -> b) -> b -> IntervalMap k a -> b
fold = (a -> b -> b) -> b -> IntervalMap (Interval k) a -> b
forall a b k. (a -> b -> b) -> b -> IntervalMap k a -> b
L.foldr
foldWithKey :: (Interval k -> a -> b -> b) -> b -> IntervalMap k a -> b
foldWithKey :: forall k a b.
(Interval k -> a -> b -> b) -> b -> IntervalMap k a -> b
foldWithKey = (Interval k -> a -> b -> b) -> b -> IntervalMap (Interval k) a -> b
forall k v a. (k -> v -> a -> a) -> a -> IntervalMap k v -> a
foldrWithKey