proc mapTo[D: static[int]; T, U](arr: array[D, T]; targetType: typedesc[U]): array[ D, U]
proc product[D: static[int]](arr: array[D, int]): int