Definition
temp_param_list : temp_param_list , inner_decl | inner_decl
Purpose
A temp_param_list is a comma-separated sequence of one or more inner_decls.
Semantics
Each inner_decl is an argument to the template. Unlike functions, arguments may be types, modules, signatures, or other constructs. Each argument is a separate declaration (in essence, pass by value).
Templates, like functions may take optional parameters, in the form of inner_decls with initializers. Optional parameters must come at the end of the list.