{α : Type} →
  {P : Sort u} →
    {kind : Lean.Meta.Grind.Order.CnstrKind} →
      {u v : α} →
        {k : ℤ} →
          {e : Lean.Expr} →
            {h? : Option Lean.Expr} →
              {kind' : Lean.Meta.Grind.Order.CnstrKind} →
                {u' v' : α} →
                  {k' : ℤ} →
                    {e' : Lean.Expr} →
                      {h?' : Option Lean.Expr} →
                        { kind := kind, u := u, v := v, k := k, e := e, h? := h? } =
                            { kind := kind', u := u', v := v', k := k', e := e', h? := h?' } →
                          (kind = kind' → u ≍ u' → v ≍ v' → k = k' → e = e' → h? = h?' → P) → P