facts => { servers => \%servers, shells => \%shells }
);
-$solver->add_rule(server => [ 'S' ] => [ member_of => qw(S servers) ]);
+$solver->add_rule(
+ server => [ 'S' ] => [ member_of => S => [ value => 'servers' ] ]
+);
my $s = $solver->query([ 'S' ], [ call => server => 'S' ]);
is_deeply([ map $_->{S}{name}, $s->results ], [ sort @servers ]);
-$solver->add_rule(shell => [ 'S' ] => [ member_of => qw(S shells) ])
+$solver->add_rule(
+ shell => [ 'S' ] => [ member_of => S => [ value => 'shells' ] ])
->add_rule(name => [ qw(T N) ],
[ constrain => [ qw(T N) ],
sub { $_[0]->{name} eq $_[1] } ]