The problem is that `^` is not a binary operator in Nim, but used with array indexing to index the n-th element from the end (e.g. `a[^1]`).
If you want to square `x`, use:
echo lc[x*x | (x <- 1..10), int]
If you want xor (i.e. the semantics of `^` in C/C++), use:
echo lc[x xor 2 | (x <- 1..10), int]
