indirect via resolve_value method
[scpubgit/DKit.git] / lib / DX / Op / MemberOf.pm
index 2ff460e..7b16482 100644 (file)
@@ -16,9 +16,10 @@ sub run {
   );
   my ($member, $of) = @args{qw(member of)};
   die "member bound" if $member->is_bound;
-  my $set = $state->facts->{$of->bound_value};
-  my $stream = DX::ArrayStream->from_array(@{$set}{sort keys %$set});
-  return $state->bind_stream_then($member, $stream, $self->next);
+  my $set = $state->facts->{$state->resolve_value($of)};
+  return $state->then($self->next)
+               ->add_dependencies($member->id, $of->id)
+               ->bind_root_set($member->id, $set)
 }
 
 1;