(SIG (a -> o) (h o o -> o) (b -> o) (f o -> o) ) (RULES a -> a a -> h(a,b) b -> h(b,f(f(b))) b -> b h(b,h(f(a),a)) -> a )