fix type of reduce()
add "tail-rec" optimization
Merge branch 'master' into gfx/optimize-tail-recursion
Merge branch 'master' into gfx/optimize-tail-recursion
[tail-rec] refactor
add a TODO test

which requires to determine calls of functions defined by function statements
[tail-rec] fix flags
fix comments
Merge pull request #221 from jsx/gfx/optimize-tail-recursion

Optimization of tail recursion