Create a list of the instantiations Template gets
successively on backtracking over Goal and unify the result
with Bag. Succeeds with an empty list if Goal has
no solutions. findall/3
is equivalent to bagof/3
with all free variables bound with the existential operator (^),
except that bagof/3
fails when Goal has no solutions.