our @ISA = qw( Collection::Bounded Collection::Unique Collection::Generic ); #### sub add { my $self = shift; my $thing = shift; return undef if $self->contains($thing); return $self->SUPER::add($thing); } #### sub add { my $self = shift; my $thing = shift; my $collection = $self->{collection}; return undef if $collection->contains($thing); return $collection->add($thing); } #### sub AUTOLOAD { my $self = shift; my $func = our $AUTOLOAD; $func =~ s/.*:://; return $self->{collection}->$func; }