Definition funcomp u (f : B -> A) (g : C -> B) x := let: tt := u in f (g x).Definition catcomp u g f := funcomp u f g.Notation comp := (funcomp tt).Definition pcomp (f : B -> option A) (g : C -> option B) x := obind f (g x).

(* Specifications: *)
Lemma eq_comp f f' g g' : f =1 f' -> g =1 g' -> comp f g =1 comp f' g'.