I can understand **foldl**. When a compiler emits warnings, it could be because
there's a **possibility of a bug** from the programmer in the code or **another
reason** like "optimization in code generation not possible" because of
something in the code. That's not an error, but that's a message that the
compiler author emits to the programmer about something that he feels
**important but not critical**.
Faced to these different types of warnings, the programmer should do two things:
1\. Analyze his code and check the justification for the warning. In the case
of the _optimization warning_ , perhaps rewriting the source will make the
warning disappear while benefiting from a better generated code.
2\. He knows that his code is correct and the compiler is emitting a warning
that does not apply for that case. He should silence that individual warning.
That what we do when we use some Nim pragmas like `{.noinit.}`.
Disabling all warnings as a whole without trying to understand why they appear
is like not trusting the compiler author, being Nim or GCC. Like
**rayman22201** said, you must trust that Nim is generating efficient C code
and issuing reasonable warnings, just like you must trust GCC is generating
efficient binary code with reasonable warnings. Silencing blindly **all**
warnings, either Nim's or GCC's, is like closing one eye because using one is
enough to see...