Note that, after exiting from subcall/2, the goals collected in Delayed_goals do no longer exist as delayed goals.
Success: [eclipse]: X > 0, subcall(X < 5, DG). X = X DG = [X < 5] Delayed goals: X > 0 yes. [eclipse]: subcall( (X > 0, Y > 0, X = 3) , DG). Y = Y X = 3 DG = [Y > 0] yes. Fail: subcall(fail, _). Error: subcall(Var, D). (Error 4). subcall(3, D). (Error 5). subcall(foo(a), D). (Error 68).