Starting on goal: $list = [$x | [$x is tasty]] Goal arity 3: $list = [$x | [$x is tasty]] nextSolution Goal: "[]"($list, "=", "[]"($x, "|", "[]"($x, is, tasty))). Got clause: "[]"(_7, "=", "[]"(_8, "|", _9)) :- "[]"(_10, "=", new, collector); "[]"("[]"(forall_impl, "()"("[]"(_8, ",", _9, ",", _10))), or, true); "[]"(_7, "=", retrieve, "()"(_10)) Clause unifies to: "[]"($list, "=", "[]"(_8, "|", "[]"(_8, is, tasty))) :- "[]"(_10, "=", new, collector); "[]"("[]"(forall_impl, "()"("[]"(_8, ",", "[]"(_8, is, tasty), ",", _10))), or, true); "[]"($list, "=", retrieve, "()"(_10)) gdash: ___ = new collector Goal arity 4: ___ = new collector Goal: "[]"(_10, "=", new, collector); "[]"("[]"(forall_impl, "()"("[]"(_8, ",", "[]"(_8, is, tasty), ",", _10))), or, true); "[]"($list, "=", retrieve, "()"(_10)). Got clause: "[]"(_11, "=", new, collector) :- native Clause unifies to: "[]"(_10, "=", new, collector) :- native Clause is native. gdash: [forall_impl ([___ , ___ , ___])] or true Goal arity 3: [forall_impl ([___ , ___ , ___])] or true Goal: "[]"("[]"(forall_impl, "()"("[]"(_8, ",", "[]"(_8, is, tasty), ",", ___))), or, true); "[]"($list, "=", retrieve, "()"(___)). Got clause: "[]"(_25, or, _26) :- _25 Clause unifies to: "[]"("[]"(forall_impl, "()"("[]"(_8, ",", "[]"(_8, is, tasty), ",", ___))), or, true) :- "[]"(forall_impl, "()"("[]"(_8, ",", "[]"(_8, is, tasty), ",", ___))) gdash: ___ Goal arity 2: forall_impl ([___ , ___ , ___]) Goal: "[]"(forall_impl, "()"("[]"(_8, ",", "[]"(_8, is, tasty), ",", ___))); "[]"($list, "=", retrieve, "()"(___)). Got clause: "[]"(forall_impl, "()"("[]"(_33, ",", _34, ",", _35))) :- _34; "[]"(saveTo, "()"("[]"(_33, ",", _35))); false Clause unifies to: "[]"(forall_impl, "()"("[]"(_8, ",", "[]"(_8, is, tasty), ",", ___))) :- "[]"(_8, is, tasty); "[]"(saveTo, "()"("[]"(_8, ",", ___))); false gdash: ___ Goal arity 3: $x is tasty Goal: "[]"(_8, is, tasty); "[]"(saveTo, "()"("[]"(_8, ",", ___))); false; "[]"($list, "=", retrieve, "()"(___)). Got clause: "[]"("[]"(ice, cream), is, tasty) Clause unifies to: "[]"("[]"(ice, cream), is, tasty) gdash: saveTo ([___ , ___]) Goal arity 2: saveTo ([___ , ___]) Goal: "[]"(saveTo, "()"("[]"("[]"(ice, cream), ",", ___))); false; "[]"($list, "=", retrieve, "()"(___)). Got clause: "[]"(saveTo, "()"("[]"(_36, ",", _37))) :- native Clause unifies to: "[]"(saveTo, "()"("[]"("[]"(ice, cream), ",", ___))) :- native Clause is native. gdash: false Goal arity 0: false Goal: "[]"(_8, is, tasty); "[]"(saveTo, "()"("[]"(_8, ",", ___))); false; "[]"($list, "=", retrieve, "()"(___)). Got clause: "[]"(lasagna, is, tasty) Clause unifies to: "[]"(lasagna, is, tasty) gdash: saveTo ([___ , ___]) Goal arity 2: saveTo ([___ , ___]) Goal: "[]"(saveTo, "()"("[]"(lasagna, ",", ___))); false; "[]"($list, "=", retrieve, "()"(___)). Got clause: "[]"(saveTo, "()"("[]"(_60, ",", _61))) :- native Clause unifies to: "[]"(saveTo, "()"("[]"(lasagna, ",", ___))) :- native Clause is native. gdash: false Goal arity 0: false Goal: "[]"("[]"(forall_impl, "()"("[]"(_8, ",", "[]"(_8, is, tasty), ",", ___))), or, true); "[]"($list, "=", retrieve, "()"(___)). Got clause: "[]"(_86, or, _87) :- _87 Clause unifies to: "[]"("[]"(forall_impl, "()"("[]"(_8, ",", "[]"(_8, is, tasty), ",", ___))), or, true) :- true gdash: ___ Goal arity 0: true Goal: true; "[]"($list, "=", retrieve, "()"(___)). Got clause: true Clause unifies to: true gdash: ___ = retrieve (___) Goal arity 4: ___ = retrieve (___) Goal: "[]"($list, "=", retrieve, "()"(___)). Got clause: "[]"(_89, "=", _90, "()"(_91)) :- native Clause unifies to: "[]"($list, "=", retrieve, "()"(___)) :- native Clause is native. gdash: - SUCCESS! solution found in step 77 nextSolution Done with goal! No solution