the issue is that static[Natural] already is a value not the type of the value: func `*`[ArrSize: static[Natural], T:typedesc]( elems: array[ArrSize, T], times: static[Cnt]): array[Cnt * ArrSize, T] = Run
Though there's another issue. Writing typedesc is not the same as just writing T. So finally it works this way: func `*`[ArrSize: static[Natural], T]( elems: array[ArrSize, T], times: static[Natural]): array[times * ArrSize, T] = discard Run also please use synatx highlighting in code blocks by writing nim after the tripple accents.