∀ {C : Type u_2} [inst : CategoryTheory.Category.{u_1, u_2} C] {X Y : C} (f : Y ⟶ X)
  (Hf : CategoryTheory.Limits.IsColimit (CategoryTheory.Sieve.generateSingleton f).arrows.cocone) {W : C} (e : Y ⟶ W)
  (h :
    ∀ {Z : C} (g₁ g₂ : Z ⟶ Y),
      CategoryTheory.CategoryStruct.comp g₁ f = CategoryTheory.CategoryStruct.comp g₂ f →
        CategoryTheory.CategoryStruct.comp g₁ e = CategoryTheory.CategoryStruct.comp g₂ e)
  (m : X ⟶ W),
  CategoryTheory.CategoryStruct.comp f m = e →
    m =
      Hf.desc
        ((fun {W} e h =>
            { pt := W,
              ι :=
                {
                  app := fun x =>
                    match x with
                    | { obj := obj, property := hT } => CategoryTheory.CategoryStruct.comp (Exists.choose hT) e,
                  naturality := ⋯ } })
          e ⋯)