% to read this file with standard Prolog, uncomment the next two lines:
:- op(1150,fx,function).
function(_).

signat(o,o).
signat(s(_),s(o)).

plus(o,Y,Y).
plus(s(X),Y,s(Z)) :- plus(X,Y,Z).

:- function main/1.
main(X) :- plus(X,o,N), signat(N,s(o)).
