module Prelate.Control.Monad (
module Prelate.Control.Monad,
module Control.Monad.Extra,
) where
import Control.Monad.Extra (
findM,
firstJustM,
pureIf,
untilJustM,
whenJust,
whenJustM,
whenMaybe,
whenMaybeM,
whileJustM,
whileM,
)
tap ::
Functor m =>
(a -> m ()) ->
a ->
m a
tap :: forall (m :: * -> *) a. Functor m => (a -> m ()) -> a -> m a
tap a -> m ()
f a
a =
a
a a -> m () -> m a
forall a b. a -> m b -> m a
forall (f :: * -> *) a b. Functor f => a -> f b -> f a
<$ a -> m ()
f a
a
{-# inline tap #-}