module Data.Maybe.JustIf ( justIf, justWhen, soJust ) where -- | Return @Just@ if True justIf :: a -> Bool -> Maybe a x `justIf` True = Just x _ `justIf` False = Nothing -- | Return @Just@ if @f x = True@ justWhen :: a -> (a -> Bool) -> Maybe a x `justWhen` p = x `justIf` p x -- | Flipped version of @justIf@ soJust :: Bool -> a -> Maybe a soJust = flip justIf