proc is_valid(templ: Template): bool {....raises: [Exception], tags: [RootEffect], forbids: [].}
proc Template(s: string): Template {....raises: [], tags: [], forbids: [].}
iterator get_identifiersMayDup(templ: Template): string {....raises: [Exception], tags: [RootEffect], forbids: [].}
template genSubstitute(M; Key; sym; doExc) {.dirty.}