use Return::MultiLevel qw(with_return);
use DX::Op::Backtrack;
use Scalar::Util qw(blessed);
+use List::MoreUtils qw(uniq);
use Safe::Isa;
use Moo;
sub resolve_value {
my ($self, $var) = @_;
+die("FUCK") unless $var;
+ die "Can't resolve unbound ${\$var->id}" unless $var->is_bound;
my $val = $var->bound_value;
if ($val->$_does('DX::Role::Ref')) {
return $val->resolve($self);
and $value->has_required_action;
push @queue, grep !$seen{$_}, keys %{$deps->{$id}};
}
- return map $_->required_action, @found;
+ return uniq map $_->required_action, @found;
}
sub copy_vars {