sub value { my ($self) = @_; return wantarray ? ($self->{first}, $self->{rest} ? $self->{rest}->value : ()) : 1 + ($self->{rest} && $self->{rest}->value) }