:- module nondet_memo_bug.

:- interface.

:- import_module io.

:- pred main(io::di, io::uo) is det.


:- implementation.

:- import_module int, solutions.

:- pred foo(int::out) is multi.
:- pragma memo(foo/1).

foo(1).
foo(2).
foo(3).

main(!IO) :-
	foo(_),
	(all [X] (foo(X) => X > 0) ->
		print("OK!\n", !IO);
	 print("Whoops!\n", !IO)).
