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