only use `Monoid[V]` here, not Ring.