heart-core-0.3.1: An opinionated library prelude in the UnliftIO style

Safe HaskellNone
LanguageHaskell2010

Heart.Core.Builder

Documentation

data Builder a b Source #

Instances
Functor (Builder a) Source # 
Instance details

Defined in Heart.Core.Builder

Methods

fmap :: (a0 -> b) -> Builder a a0 -> Builder a b #

(<$) :: a0 -> Builder a b -> Builder a a0 #

premapBuilder :: (z -> a) -> Builder a b -> Builder z b Source #

newBuilder :: MonadIO m => (b -> a -> b) -> b -> m (Builder a b) Source #

addBuilder :: MonadIO m => Builder a b -> a -> m () Source #

addAllBuilder :: (MonadIO m, Foldable f) => Builder a b -> f a -> m () Source #

consumeBuilder :: MonadIO m => Builder a b -> ListT m a -> m () Source #

drainBuilder :: MonadIO m => Builder a b -> m b Source #

runBuilder :: MonadIO m => (b -> a -> b) -> b -> (Builder a b -> m c) -> m (b, c) Source #

evalBuilder :: MonadIO m => (b -> a -> b) -> b -> (Builder a b -> m ()) -> m b Source #

type SeqBuilder a = Builder a (Seq a) Source #

runSeqBuilder :: MonadIO m => (SeqBuilder a -> m c) -> m (Seq a, c) Source #

evalSeqBuilder :: MonadIO m => (SeqBuilder a -> m ()) -> m (Seq a) Source #

type MapBuilder k v = Builder (k, v) (Map k v) Source #

runMapBuilder :: (MonadIO m, Ord k) => (MapBuilder k v -> m c) -> m (Map k v, c) Source #

evalMapBuilder :: (MonadIO m, Ord k) => (MapBuilder k v -> m ()) -> m (Map k v) Source #

type SetBuilder k = Builder k (Set k) Source #

runSetBuilder :: (MonadIO m, Ord k) => (SetBuilder k -> m c) -> m (Set k, c) Source #

evalSetBuilder :: (MonadIO m, Ord k) => (SetBuilder k -> m ()) -> m (Set k) Source #

type HashMapBuilder k v = Builder (k, v) (HashMap k v) Source #

runHashMapBuilder :: (MonadIO m, Eq k, Hashable k) => (HashMapBuilder k v -> m c) -> m (HashMap k v, c) Source #

evalHashMapBuilder :: (MonadIO m, Eq k, Hashable k) => (HashMapBuilder k v -> m ()) -> m (HashMap k v) Source #

runHashSetBuilder :: (MonadIO m, Eq k, Hashable k) => (HashSetBuilder k -> m c) -> m (HashSet k, c) Source #

evalHashSetBuilder :: (MonadIO m, Eq k, Hashable k) => (HashSetBuilder k -> m ()) -> m (HashSet k) Source #

runOrdMultiMapBuilder :: (MonadIO m, Ord k, Ord v) => (OrdMultiMapBuilder k v -> m c) -> m (OrdMultiMap k v, c) Source #

evalOrdMultiMapBuilder :: (MonadIO m, Ord k, Ord v) => (OrdMultiMapBuilder k v -> m ()) -> m (OrdMultiMap k v) Source #

runHashMultiMapBuilder :: (MonadIO m, Eq k, Hashable k, Eq v, Hashable v) => (HashMultiMapBuilder k v -> m c) -> m (HashMultiMap k v, c) Source #