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