with 'DX::Role::Predicate';
-sub _possible_resolution_list {
- my ($self, @args) = @_;
- my $rspace = $self->_resolution_space_for(@args);
- return () unless my @members = @{$rspace->members};
- return map {
- $_->isa('DX::Resolution')
- ? step(
- actions => $_->actions,
- depends_on => $_->veracity_depends_on,
- )
- : do {
- my ($db, @ap) = (
- $_->veracity_depends_on_builder, @{$_->action_prototypes}
- );
- map {
- my @cand = @{$_};
- step(
- actions => [
- map {
- my ($inv, $type, @args) = @{$ap[$_]};
- $inv->${\"action_for_${type}"}(@args, @{$cand[$_]});
- } 0..$#ap
- ],
- depends_on => $db->(@cand),
- )
- } @{$_->implementation_candidates};
- }
- } @members;
-}
-
# member_at Dict Key Value
#
# Dict must be set to a dict (later maybe also an array and Key -> Index)