Monadify deSugar/Match: use do, return, applicative, standard monad functions