sub value { my ($self) = @_; return @{[$self->{first}, $self->{rest} ? $self->{rest}->value : ()]}; }