package DX::Step::ConsiderProposition;

use DX::Class;

with 'DX::Role::Step';

has proposition => (is => 'ro', isa => Proposition, required => 1);

sub apply_to {
  my ($self, $ss) = @_;
  my $hyp = $ss->current_hypothesis;
  trace consider => [
    statement => [
      [ symbol => 'consider' ],
      @{$self->proposition->for_deparse->[1]},
    ],
  ];
  return $ss->but(next_step => $self->proposition->resolve_for($hyp->scope));
}

1;
