Hi Mark, in the discusion at https://github.com/infradig/trealla/issues/99
it was found that Scryer Prolog actually gives
$ scryer-prolog
?- findall(1, true, L, [a(X)]), X = 1.
L = [1,a(X)], X = 1.
whereas the expected answer is
L = [1,a(1)], X = 1
Thanks! It looks like the issue is with printing the value of X rather than with the binding itself.
?- findall(1, false, L0,L).
L0 = [], L = []. % unexpected
Expected: L0 = L
Most helpful comment
Expected:
L0 = L