my ($member, $of) = @args{qw(member of)};
die "member bound" if $member->is_bound;
my $set = $state->facts->{$of->bound_value};
- return $state->bind_root_set_then($member, $set, $self->next);
+ return $state->bind_root_set_then($member->id, $set, $self->next);
}
1;
}
sub bind_root_set_then {
- my ($self, $var, $set, $then) = @_;
- my $bound = $var->with_root_set($set);
+ my ($self, $var_id, $set, $then) = @_;
+ my $bound = $self->by_id->{$var_id}->with_root_set($set);
$self->but(
- by_id => { %{$self->by_id}, $var->id => $bound },
+ by_id => { %{$self->by_id}, $var_id => $bound },
next_op => $then
)->mark_choice($bound);
}