module Rattletrap.Utility.Monad where whenMaybe :: (Applicative m) => Bool -> m a -> m (Maybe a) whenMaybe :: forall (m :: * -> *) a. Applicative m => Bool -> m a -> m (Maybe a) whenMaybe Bool p m a f = if Bool p then (a -> Maybe a) -> m a -> m (Maybe a) forall a b. (a -> b) -> m a -> m b forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b fmap a -> Maybe a forall a. a -> Maybe a Just m a f else Maybe a -> m (Maybe a) forall a. a -> m a forall (f :: * -> *) a. Applicative f => a -> f a pure Maybe a forall a. Maybe a Nothing