Monad syntax using ppx extensions