{-# OPTIONS_GHC -Wall -fno-warn-tabs #-} module Control.Monad.ToolsYj where import Control.Monad.Fix import Data.Bool whenDef :: Applicative m => a -> Bool -> m a -> m a whenDef :: forall (m :: * -> *) a. Applicative m => a -> Bool -> m a -> m a whenDef = (m a -> Bool -> m a) -> Bool -> m a -> m a forall a b c. (a -> b -> c) -> b -> a -> c flip ((m a -> Bool -> m a) -> Bool -> m a -> m a) -> (a -> m a -> Bool -> m a) -> a -> Bool -> m a -> m a forall b c a. (b -> c) -> (a -> b) -> a -> c . m a -> m a -> Bool -> m a forall a. a -> a -> Bool -> a bool (m a -> m a -> Bool -> m a) -> (a -> m a) -> a -> m a -> Bool -> m a forall b c a. (b -> c) -> (a -> b) -> a -> c . a -> m a forall a. a -> m a forall (f :: * -> *) a. Applicative f => a -> f a pure whenMaybe :: Applicative m => Maybe a -> (a -> m ()) -> m () whenMaybe :: forall (m :: * -> *) a. Applicative m => Maybe a -> (a -> m ()) -> m () whenMaybe = ((a -> m ()) -> Maybe a -> m ()) -> Maybe a -> (a -> m ()) -> m () forall a b c. (a -> b -> c) -> b -> a -> c flip (((a -> m ()) -> Maybe a -> m ()) -> Maybe a -> (a -> m ()) -> m ()) -> (m () -> (a -> m ()) -> Maybe a -> m ()) -> m () -> Maybe a -> (a -> m ()) -> m () forall b c a. (b -> c) -> (a -> b) -> a -> c . m () -> (a -> m ()) -> Maybe a -> m () forall b a. b -> (a -> b) -> Maybe a -> b maybe (m () -> Maybe a -> (a -> m ()) -> m ()) -> m () -> Maybe a -> (a -> m ()) -> m () forall a b. (a -> b) -> a -> b $ () -> m () forall a. a -> m a forall (f :: * -> *) a. Applicative f => a -> f a pure () whenMaybeDef :: Applicative m => b -> Maybe a -> (a -> m b) -> m b whenMaybeDef :: forall (m :: * -> *) b a. Applicative m => b -> Maybe a -> (a -> m b) -> m b whenMaybeDef = ((a -> m b) -> Maybe a -> m b) -> Maybe a -> (a -> m b) -> m b forall a b c. (a -> b -> c) -> b -> a -> c flip (((a -> m b) -> Maybe a -> m b) -> Maybe a -> (a -> m b) -> m b) -> (b -> (a -> m b) -> Maybe a -> m b) -> b -> Maybe a -> (a -> m b) -> m b forall b c a. (b -> c) -> (a -> b) -> a -> c . m b -> (a -> m b) -> Maybe a -> m b forall b a. b -> (a -> b) -> Maybe a -> b maybe (m b -> (a -> m b) -> Maybe a -> m b) -> (b -> m b) -> b -> (a -> m b) -> Maybe a -> m b forall b c a. (b -> c) -> (a -> b) -> a -> c . b -> m b forall a. a -> m a forall (f :: * -> *) a. Applicative f => a -> f a pure doWhile_ :: Monad m => m Bool -> m () doWhile_ :: forall (m :: * -> *). Monad m => m Bool -> m () doWhile_ m Bool a = (m () -> m ()) -> m () forall a. (a -> a) -> a fix ((m () -> m ()) -> m ()) -> (m () -> m ()) -> m () forall a b. (a -> b) -> a -> b $ (m Bool a m Bool -> (Bool -> m ()) -> m () forall a b. m a -> (a -> m b) -> m b forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b >>=) ((Bool -> m ()) -> m ()) -> (m () -> Bool -> m ()) -> m () -> m () forall b c a. (b -> c) -> (a -> b) -> a -> c . m () -> m () -> Bool -> m () forall a. a -> a -> Bool -> a bool (() -> m () forall a. a -> m a forall (f :: * -> *) a. Applicative f => a -> f a pure ())