'<': Term1 is an instance of Term2.
'>': Term2 is an instance of Term1.
'=': Term1 is variant of Term2.
For the definition of instance and variant refer to instance/2 and variant/2, respectively.
Success: compare_instances(Rel,X,Y), Rel == '='. compare_instances(=, [a,X], [a,Y]). compare_instances(<, [a,b], [X,Y]). compare_instances(<, [X], [X|Y]). compare_instances(>, X, f(1,1)). compare_instances(<, f(1,1), X). Fail: compare_instances(Rel, f(X), 1). compare_instances(Rel, 1, f(X)). compare_instances(<, X, a).