Rewrite Nvt with Applicative Functor