Safe Haskell | None |
---|---|
Language | Haskell2010 |
DeferredFolds.UnfoldlM
Synopsis
- mapM_ :: Monad m => (input -> m ()) -> UnfoldlM m input -> m ()
- forM_ :: Monad m => UnfoldlM m input -> (input -> m ()) -> m ()
- filter :: Monad m => (a -> m Bool) -> UnfoldlM m a -> UnfoldlM m a
- unfoldr :: forall (m :: Type -> Type) a. Monad m => Unfoldr a -> UnfoldlM m a
- null :: Monad m => UnfoldlM m input -> m Bool
- fold :: Fold input output -> UnfoldlM Identity input -> output
- foldM :: Monad m => FoldM m input output -> UnfoldlM m input -> m output
- hoist :: (forall a1. m a1 -> n a1) -> (forall a1. n a1 -> m a1) -> UnfoldlM m a -> UnfoldlM n a
- foldlM' :: Monad m => (output -> input -> m output) -> output -> UnfoldlM m input -> m output
- newtype UnfoldlM (m :: Type -> Type) a = UnfoldlM (forall x. (x -> a -> m x) -> x -> m x)
- foldable :: forall (m :: Type -> Type) foldable a. (Monad m, Foldable foldable) => foldable a -> UnfoldlM m a
- mapFoldMInput :: forall (m :: Type -> Type) b a. Monad m => (forall x. FoldM m b x -> FoldM m a x) -> UnfoldlM m a -> UnfoldlM m b
- foldlRunner :: forall (m :: Type -> Type) a. Monad m => (forall x. (x -> a -> x) -> x -> x) -> UnfoldlM m a
- foldrRunner :: forall (m :: Type -> Type) a. Monad m => (forall x. (a -> x -> x) -> x -> x) -> UnfoldlM m a
- intsInRange :: forall (m :: Type -> Type). Monad m => Int -> Int -> UnfoldlM m Int
- tVarValue :: TVar a -> UnfoldlM STM a
- byteStringBytes :: ByteString -> UnfoldlM IO Word8
- shortByteStringBytes :: forall (m :: Type -> Type). Monad m => ShortByteString -> UnfoldlM m Word8
- primArray :: forall (m :: Type -> Type) prim. (Monad m, Prim prim) => PrimArray prim -> UnfoldlM m prim
- primArrayWithIndices :: forall (m :: Type -> Type) prim. (Monad m, Prim prim) => PrimArray prim -> UnfoldlM m (Int, prim)
Documentation
mapM_ :: Monad m => (input -> m ()) -> UnfoldlM m input -> m () #
A more efficient implementation of mapM_
forM_ :: Monad m => UnfoldlM m input -> (input -> m ()) -> m () #
Same as mapM_
with arguments flipped
filter :: Monad m => (a -> m Bool) -> UnfoldlM m a -> UnfoldlM m a #
Filter the values given a predicate
foldM :: Monad m => FoldM m input output -> UnfoldlM m input -> m output #
Apply a monadic Gonzalez fold
hoist :: (forall a1. m a1 -> n a1) -> (forall a1. n a1 -> m a1) -> UnfoldlM m a -> UnfoldlM n a #
Change the base monad using invariant natural transformations
foldlM' :: Monad m => (output -> input -> m output) -> output -> UnfoldlM m input -> m output #
Perform a monadic strict left fold
newtype UnfoldlM (m :: Type -> Type) a #
A monadic variation of DeferredFolds.Unfoldl
Constructors
UnfoldlM (forall x. (x -> a -> m x) -> x -> m x) |
Instances
foldable :: forall (m :: Type -> Type) foldable a. (Monad m, Foldable foldable) => foldable a -> UnfoldlM m a #
Construct from any foldable
mapFoldMInput :: forall (m :: Type -> Type) b a. Monad m => (forall x. FoldM m b x -> FoldM m a x) -> UnfoldlM m a -> UnfoldlM m b #
Lift a fold input mapping function into a mapping of unfolds
foldlRunner :: forall (m :: Type -> Type) a. Monad m => (forall x. (x -> a -> x) -> x -> x) -> UnfoldlM m a #
Construct from a specification of how to execute a left-fold
foldrRunner :: forall (m :: Type -> Type) a. Monad m => (forall x. (a -> x -> x) -> x -> x) -> UnfoldlM m a #
Construct from a specification of how to execute a right-fold
intsInRange :: forall (m :: Type -> Type). Monad m => Int -> Int -> UnfoldlM m Int #
Ints in the specified inclusive range
byteStringBytes :: ByteString -> UnfoldlM IO Word8 #
Bytes of a bytestring
shortByteStringBytes :: forall (m :: Type -> Type). Monad m => ShortByteString -> UnfoldlM m Word8 #
Bytes of a short bytestring