Try this fixed version:
proc enumerableRepeat[T](value: T, n: int = -1): iterator(): T =
result = iterator(): T {.closure.} =
var i = 0
while n == -1 or i < n:
yield value
i += 1
proc writeFile[T](filePath: string, iter: iterator():T) =
var file = open(filePath, mode=fmWrite)
for str in iter(): file.writeLine(str)
file.close()
writeFile("iter.txt", enumerableRepeat("a", 100))
1. You accidentally made `filePath` an iterator too. 2. You need the `()` when you call the iterator.
