{-# OPTIONS_GHC -Wall -fno-warn-tabs #-} module Data.Bool.ToolsYj (onlyIf, errorIf, errorIfNot) where import Data.Bool onlyIf :: (a -> Bool) -> a -> Maybe a onlyIf :: forall a. (a -> Bool) -> a -> Maybe a onlyIf a -> Bool p a x = Maybe a -> Maybe a -> Bool -> Maybe a forall a. a -> a -> Bool -> a bool Maybe a forall a. Maybe a Nothing (a -> Maybe a forall a. a -> Maybe a Just a x) (a -> Bool p a x) errorIf :: String -> Bool -> IO () errorIf :: String -> Bool -> IO () errorIf String msg = IO () -> IO () -> Bool -> IO () forall a. a -> a -> Bool -> a bool (() -> IO () forall a. a -> IO a forall (f :: * -> *) a. Applicative f => a -> f a pure ()) (String -> IO () forall a. HasCallStack => String -> a error String msg) errorIfNot :: String -> Bool -> IO () errorIfNot :: String -> Bool -> IO () errorIfNot String msg = IO () -> IO () -> Bool -> IO () forall a. a -> a -> Bool -> a bool (String -> IO () forall a. HasCallStack => String -> a error String msg) (() -> IO () forall a. a -> IO a forall (f :: * -> *) a. Applicative f => a -> f a pure ())