better hacking through kleisli composition :D