with 'DX::Role::Step';
-has proposition_list => (is => 'ro', required => 1);
+has proposition_list => (
+ is => 'ro', isa => PropositionList, required => 1
+);
-has on_completion_step => (is => 'ro', required => 1);
+has on_completion_step => (is => 'ro', isa => Step, required => 1);
-has on_failure_step => (is => 'ro', required => 1);
+has on_failure_step => (is => 'ro', isa => Maybe[Step], required => 1);
sub apply_to {
my ($self, $old_ss) = @_;
my ($prop, @rest) = @{$self->proposition_list};
+ trace recheck => [ statement => [
+ [ symbol => 'recheck' ],
+ @{$prop->for_deparse->[1]},
+ [ 'enter_block' ],
+ ] ];
+
my $old_hyp = $old_ss->current_hypothesis;
# we should probably be doing something about pruning the scope
my $ss = DX::SearchState->new(
current_hypothesis => $hyp,
- adjustments_made => [],
+ decisions_taken => [],
propositions => $pseq,
next_step => DX::Step::ConsiderProposition->new(
proposition => $prop,
),
is_solution_state => 0,
+ is_exhaustion_state => 0,
on_solution_step => DX::Step::CompleteRecheck->new(
resume_search_state => $old_ss->but(next_step => $next_step),
was_recheck_for => $prop,