document monad attempt for CPS