async function generateAttachingRules() {
                    /* 
                    Attaching Rules
                    */
                    let html = ''
                    let paragraph
                    let key = 'auto-generated-paragraph-' + autoGeneratedParagraphIndex
                    if(appSchemaDocument === undefined || (appSchemaDocument.attachingRules === undefined && appSchemaDocument.referencingRules === undefined)) {
                        return ''
                    }

                    paragraph = {
                        style: "Title",
                        text: "" + appSchemaDocument.type + " Attaching Rules"
                    }
                    html = html + await renderParagraph(paragraph, key)
                    autoGeneratedParagraphIndex++
                    paragraph = {
                        style: "Text",
                        text: "The following are the Node Attaching Rules that govern the attachment of  " + appSchemaDocument.type + " with other nodes:"
                    }
                    html = html + await renderParagraph(paragraph, key)
                    autoGeneratedParagraphIndex++

                    if(appSchemaDocument.attachingRules !== undefined) {
                        if(appSchemaDocument.attachingRules.compatibleTypes !== undefined) {
                            paragraph = {
                                style: "Subtitle",
                                text: "Compatible Types:"
                            }
                            html = html + await renderParagraph(paragraph, key)
                            autoGeneratedParagraphIndex++

                            let splittedTypes = appSchemaDocument.attachingRules.compatibleTypes.split('->')
                            html = html + await listAllTheseNodes(splittedTypes, 'attaching-rules-compatible-types')
                        }
                        if(appSchemaDocument.attachingRules.incompatibleTypes !== undefined) {
                            paragraph = {
                                style: "Subtitle",
                                text: "Incompatible Types:"
                            }
                            html = html + await renderParagraph(paragraph, key)
                            autoGeneratedParagraphIndex++

                            let splittedTypes = appSchemaDocument.attachingRules.incompatibleTypes.split('->')
                            html = html + await listAllTheseNodes(splittedTypes, 'attaching-rules-incompatible-types')
                        }
                    }
                    return html

                    async function listAllTheseNodes(nodeList, additionToKey) {
                        let lHtml = ''
                        for(let i = 0; i < nodeList.length; i++) {
                            let listItem = nodeList[i]
                            if(listItem === "") {
                                continue
                            }
                            lHtml = lHtml + '<button id="docs-' + additionToKey + '-' + i + '" type="button" class="docs-non-collapsible-element"><img>' + await ED.utilities.addToolTips(listItem, thisObject.currentDocumentBeingRendered.type) + '</button>'
                        }
                        return lHtml
                    }
                }
@returns {Promise<string>} generated attaching rules HTML