The constructor takes an optional List of fields which will be used to determine whether two Vm are equal.
Vm({this.equals = const []}) : assert(_onlyContainFieldsOfAllowedTypes(equals));