prefix(X,[],X).
prefix(X,[H|Y],Z) :- prefix(X,H,[X,H]).
suffix([],X,X).
suffix(X,[H|Y],Z) :- suffix(H,X,[H,X]).
:- style_check(-atom).
suffix(X,[1,2,3]).
cHJlZml4KFgsW10sWCkuCnByZWZpeChYLFtIfFldLFopIDotIHByZWZpeChYLEgsW1gsSF0pLgoKc3VmZml4KFtdLFgsWCkuCnN1ZmZpeChYLFtIfFldLFopIDotIHN1ZmZpeChILFgsW0gsWF0pLgoKOi0gc3R5bGVfY2hlY2soLWF0b20pLgoKc3VmZml4KFgsWzEsMiwzXSku
prog.pl:2: warning: singleton variables [Y,Z] for prefix/3
prog.pl:5: warning: singleton variables [Y,Z] for suffix/3
prog.pl:7: warning: unknown directive style_check/1 - maybe use initialization/1 - directive ignored
prog.pl:9: fatal error: redefining built-in predicate suffix/2
compilation failed