(SIG (f o o -> o) (a -> o) ) (RULES f(a,f(a,x)) -> f(f(a,a),a) )