By the way... why didn't we add something likes this already:
```nim
# foldl with initial (type giving) parameter
template foldl(sequence, operation: expr, first): expr =
var result {.gensym.}: type(first)
result = first
for i in countup(0, sequence.len - 1):
let
a {.inject.} = result
b {.inject.} = sequence[i]
result = operation
result
var e: seq[int] = @[]
var foldl_res2 = foldl( e, "(" & $a & "+" & $b & ")", "0")
echo foldl_res2
var foldl_res3 = foldl( @[1,2,3,4,5], "(" & $a & "+" & $b & ")", "0")
echo foldl_res3
```
I was thinking about doing a PR for this (and similar foldr), just wonder why
nobody did it so far?