type
        {%- if dtype.parobj == 'module' %}, {{ dtype.permission }}{% endif -%}
        {%- if dtype.attribs %}, {{ dtype.attribs | join(", ") }}{% endif -%}
        {%- if dtype.extends %}, extends({{ dtype.extends | relurl(page_url) }}){% endif %} :: {{ dtype.name }}
        {%- if dtype.sequence%}
sequence{% endif -%}
      
    {{ dtype.doc }}
    {% if dtype.inherbygraph or dtype.inhergraph %}
{% endif %}
    {% if dtype.inhergraph %}
      
    {% endif %}
    {% if dtype.inherbygraph %}
      
    {% endif %}
    
    {% if dtype.variables %}
    
    Components
    {{ macros.variable_list(dtype.variables, permission=True) }}
    
    
    {% endif %}
    
    {% if dtype.constructor %}
      
        Constructor
        {% if dtype.constructor.obj == "interface" %}
          {{ macros.interface(dtype.constructor) }}
        {% elif dtype.constructor.obj in ["subroutine", "function"] %}
          {% set obj = dtype.constructor %}
          
            
            
              {{ macros.proc_summary(obj, full_docstring=True) }}
            
           
        {% endif %}
      
      
    {% endif %}
    {% if dtype.finalprocs %}
      
        Finalization Procedures
        {% for proc in dtype.finalprocs %}
          {{ macros.final(proc) }}
        {% endfor %}
      
      
    {% endif %}
    {% if dtype.boundprocs %}
      
        Type-Bound Procedures
        {% for bp in dtype.boundprocs %}
          
            {{ macros.bound_info(bp) }}
          
        {% endfor %}
      
    {% endif %}
    {% if dtype.src %}
    
    Source Code
    {{ dtype.src }}
    
    {% endif %}