:: m Bool -> m Bool -> m Bool
Chooses between a compiled action and an interpreted action based on
the configured default.
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.
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]
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
Lazy monadic conjunction. That is, when the first action returns
False, then False is immediately returned, without
running the second action.
Lazy monadic disjunction. That is, when the first action returns
True, then True is immediately returned, without
running the second action.
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.