CLP dialect :ISO PrologGNU PrologSicstus PrologOther (file)
Program to type check (below or local file) sumX(_,[],0). sumX(X,[Y-V|L],S) :- sumX(X,L,S1), (X==Y -> S is S1+V ; S = S1). :- sumX(X,[X-3, Y-(3+2), X-(4-5)],S).
Optional type declarations (below or local file)