title: SWI Prolog does not terminate
body: <pre><code>:- use_module(library(clpfd)).
  
  fact(treated=A) :- A in 0..1.
  fact(numYears=B) :- B in 0..sup.
  fact(numDrugs=C) :- C in 0..sup.
  fact(treated2=D) :- D in 0..1.
  fact(cParam=E) :- E in 0..4.
  
  is_differentfact(X,X) :- false.
  is_differentfact(Element=_,OtherElement=_) :-
      dif(Element,OtherElement).
  
  is_fakt([]).
  is_fakt([X|Xs]) :-
      fact(X),
      maplist(is_differentfact(X),Xs),
      is_fakt(Xs).
  </code></pre>
  
  <p>Why does <code>?- is_fakt(X)</code> return a list of <s>results</s> answers but after a number of <s>results</s> answers it hangs. I don't know why Prolog cannot return all possible values of X.</p>