:: m Bool -> m Bool -> m Bool package:extra

The lazy || operator lifted to a monad. If the first argument evaluates to True the second argument will not be evaluated.
Just True  ||^ undefined  == Just True
Just False ||^ Just True  == Just True
Just False ||^ Just False == Just False
The lazy && operator lifted to a monad. If the first argument evaluates to False the second argument will not be evaluated.
Just False &&^ undefined  == Just False
Just True  &&^ Just True  == Just True
Just True  &&^ Just False == Just False