use DX::ArrayStream;
use Moo;
+with 'DX::Role::Set';
+
has over => (is => 'ro', required => 1);
has values => (is => 'ro', default => sub { {} });
sub remove_value {
my ($self, $value) = @_;
- delete $self->values->{$value->${\$self->over}};
+ delete $self->values->{ref($value) ? $value->${\$self->over} : $value};
return $self;
}