CLP dialect :ISO PrologGNU PrologSicstus PrologOther (file)
Program to type check (below or local file) flatten([],[]) :- !. flatten([X|L],R) :- !, flatten(X,XR), flatten(L,LR), append(XR,LR,R). flatten(X,[X]).
Optional type declarations (below or local file) :- typeof append(list(A),list(A),list(A)) is pred.