:: Monad m => m Bool -> m () -> m () package:rio

Run the second value if the first value returns True
Run the second value if the first value returns False
Sequentially compose two actions, discarding any value produced by the first, like sequencing operators (such as the semicolon) in imperative languages. 'as >> bs' can be understood as the do expression
do as
bs