whenM :: Monad m => m Bool -> m () -> m ()
whenM predicate go = predicate >>= flip when go
whenM :: Monad m => m Bool -> m () -> m ()
whenM predicate go = predicate >>= flip when go
whenM predicate go = predicate >>= flip when go