{i : Type u} →
  {b : Type v} →
    {p : Type w} →
      {P : Sort u_1} →
        {title : Array (Lean.Doc.Inline i)} →
          {titleString : String} →
            {metadata : Option p} →
              {content : Array (Lean.Doc.Block i b)} →
                {subParts : Array (Lean.Doc.Part i b p)} →
                  {title' : Array (Lean.Doc.Inline i)} →
                    {titleString' : String} →
                      {metadata' : Option p} →
                        {content' : Array (Lean.Doc.Block i b)} →
                          {subParts' : Array (Lean.Doc.Part i b p)} →
                            { title := title, titleString := titleString, metadata := metadata, content := content,
                                  subParts := subParts } =
                                { title := title', titleString := titleString', metadata := metadata',
                                  content := content', subParts := subParts' } →
                              (title ≍ title' →
                                  titleString = titleString' →
                                    metadata ≍ metadata' → content ≍ content' → subParts ≍ subParts' → P) →
                                P