:: m Bool -> m Bool -> m Bool -package:utility-ht

Chooses between a compiled action and an interpreted action based on the configured default.
Nondeterministically choose between two computations.
(m <|> n) >>= k = (m >>= k) <|> (n >>= k)
(m <|> n) <|> o = m <|> (n <|> o)
empty <|> m = m
m <|> empty = m
Convenience function to catch FailedCommand Timeout exceptions and perform some action. Example:
waitUntil 5 (getText <=< findElem $ ByCSS ".class")
`onTimeout` return ""
Generalized version of finally. Note, any monadic side effects in m of the "afterward" computation will be discarded.
Generalized version of onException. Note, any monadic side effects in m of the "afterward" computation will be discarded.
Annotate credentials with the specified scopes. This exists to allow users to choose between using newEnv with a Proxy constructed by !, or explicitly specifying scopes via a type annotation. See: !, envScopes, and the scopes available for each service.
Hint the type system about the type argument.
Flexible type extension

Examples

>>> ext0 [1 :: Int, 2, 3] [True, False] :: [Int]
[1,2,3]
>>> ext0 [1 :: Int, 2, 3] [4 :: Int, 5, 6] :: [Int]
[4,5,6]
Monadic version of or
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
The && operator lifted to a monad. If the first argument evaluates to False the second argument will not be evaluated.
The || operator lifted to a monad. If the first argument evaluates to True the second argument will not be evaluated.
Monadic version of (&&) operator. It is lazy by the second argument (similar to (||)), meaning that if the first argument is False, the function will return False without evaluating the second argument.
>>> Just False &&^ Just True
Just False

>>> Just True &&^ Just True
Just True

>>> Just True &&^ Nothing
Nothing

>>> Just False &&^ Nothing
Just False

>>> Just False &&^ error "Shouldn't be evaluated"
Just False
Monadic version of (||) operator. It is lazy by the second argument (similar to (||)), meaning that if the first argument is True, the function will return True without evaluating the second argument.
>>> Just False ||^ Just True
Just True

>>> Just False ||^ Just False
Just False

>>> Just False ||^ Nothing
Nothing

>>> Just True ||^ Nothing
Just True

>>> Just True ||^ error "Shouldn't be evaluated"
Just True
Short-cutting version of liftM2 (&&).
Short-cutting version of liftM2 (||).
Lazy monadic conjunction.
Lazy monadic disjunction.
&& lifted to a Monad.
|| lifted to a Monad.