Added a form of do notation, albeit without monads