∀ {ι : Type u_1} {M : ι → Type u_2} [inst : (i : ι) → Monoid (M i)] {N : Type u_3} [inst_1 : Monoid N],
  Function.RightInverse (fun f x => f.comp Monoid.CoprodI.of) fun fi =>
    (conGen (Monoid.CoprodI.Rel M)).lift (FreeMonoid.lift fun p => (fi p.fst) p.snd) ⋯