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