module Gamgine.Bool where

(<&&>) :: Monad m => m Bool -> m Bool -> m Bool
(<&&>) m1 m2 = do
   r1 <- m1
   if r1 then m2 else return False


(<||>) :: Monad m => m Bool -> m Bool -> m Bool
(<||>) m1 m2 = do
   r1 <- m1
   if r1 then return True else m2

infixr 3 <&&>
infixr 2 <||>