private void InspectClass(HtmlWriter writer, Type type)
        {
            var instanceCtors = type.GetConstructors(k_AllInstanceBindings);

            Array.Sort(instanceCtors, (lhs, rhs) => ReflectionHelper.CompareConstructors(type, lhs, rhs));
            if (instanceCtors.Length > 0)
            {
                using (writer.ContainerFluid())
                {
                    writer.Inline("h6", "// Constructors");
                    LayoutCtors(writer, instanceCtors);
                }
            }

            var staticCtor = type.GetConstructors(k_AllStaticBindings);

            if (staticCtor.Length > 0)
            {
                Array.Sort(staticCtor, (lhs, rhs) => ReflectionHelper.CompareConstructors(type, lhs, rhs));
                using (writer.ContainerFluid())
                {
                    writer.Inline("h6", "// Static constructors");
                    LayoutCtors(writer, staticCtor);
                }
            }

            LayoutInstanceFields(writer, type);

            var staticFields = type.GetFields(k_AllStaticBindings);

            if (staticFields.Length > 0)
            {
                Array.Sort(staticFields, (lhs, rhs) => ReflectionHelper.CompareFields(type, lhs, rhs));
                using (writer.ContainerFluid())
                {
                    writer.Inline("h6", "// Static fields");
                    LayoutStaticFields(writer, staticFields);
                }
            }

            LayoutInstanceProperties(writer, type);

            var staticProperties = type.GetProperties(k_AllStaticBindings);

            if (staticProperties.Length > 0)
            {
                Array.Sort(staticProperties, (lhs, rhs) => ReflectionHelper.CompareProperties(type, lhs, rhs));
                using (writer.ContainerFluid())
                {
                    writer.Inline("h6", "Static properties");
                    LayoutProperties(writer, staticProperties);
                }
            }

            LayoutInstanceMethods(writer, type);

            var staticMethods = type.GetMethods(k_AllStaticBindings);

            if (staticMethods.Length > 0)
            {
                Array.Sort(staticMethods, (lhs, rhs) => ReflectionHelper.CompareMethods(type, lhs, rhs));
                using (writer.ContainerFluid())
                {
                    writer.Inline("h6", "// Static functions");
                    LayoutMethods(writer, staticMethods.Where(m => !m.IsSpecialName));
                }
            }

            LayoutNestedTypes(writer, type);
        }