Change handling of Monad in MVector and get rid of GADTs