Notation "f1 \o f2" := (comp f1 f2) : function_scope.Notation "f1 \; f2" := (catcomp f1 f2) : function_scope.

(* Specifications: *)
Lemma compA {A B C D : Type} (f : B -> A) (g : C -> B) (h : D -> C) : f \o (g \o h) = (f \o g) \o h.