5 has next => (is => 'ro');
10 my ($self, @but) = @_;
11 $self->new(%$self, @but);
15 my ($self, $state, %spec) = @_;
17 @args{keys %spec} = map $self->_expand_argspec($state, $_), values %spec;
18 return $state->expand_vars(%args);
22 my ($self, $state, $spec) = @_;
24 $state->scope_var($spec)
25 } elsif (ref($spec) eq 'ARRAY') {
26 if ($spec->[0] eq 'value') {
27 +{ bound_value => $spec->[1] };
29 die "Arrayref in argspec is not value";
32 die "Argspec incomprehensible";