infix 4 (!=), (<), (<=), (>=), (>)
infixr 3 (&&), (&<&)
infixr 2 (||), orElse, morelse
-infixr 1 (>>=), (>>), (:=)
+infixr 1 (>>=), (>>), (:=), (>=>)
infixr 1 ($)
infixl 1 catch
(>>) :: Monad m => m a -> m b -> m b
a >> b = a >>= (\_ -> b)
+"Left-to-right Kleisli composition of monads."
+(>=>) :: Monad m => (a -> m b) -> (b -> m c) -> (a -> m c)
+(f >=> g) x = (f x) >>= g
+
"While loop. `while cond body` executes the `body` while the `cond` is true."
@inline
while :: (<e> Boolean) -> (<e> a) -> <e> ()