self(X) :- clause(self(H),C,R),instance(R,X).

/*
| ?- self(X).

X = self(_537):-clause(self(_545),_557,_561),instance(_561,_537)

true
*/