
{{ module }}
{%- if len_parameterlist > 0 %}
#({% for param in parameterlist %}
{{ param }}{%- if loop.index < len_parameterlist -%},
{%- endif -%}{% endfor %}
)
{%- endif %}
{%- for instance in instances %}
{{ instance }}{%- if loop.index < len_instances -%},
{%- endif -%}{%- endfor -%};

