let compose_partial1 f g a = let (b, rho) = g a in (try let (c, tau) = f b in (c, dep2 rho tau ) with Not_found -> (b, rho))