we need equals/hashCode for all FieldValue implementations (otherwise expression evaluation will fail)