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