This way their name doesn't get mangle by the broken magic. It will also eventually allow to `error()` in the template when the implicit `@function` is used. This commit also fixes a large number of issues found while proof-reading everything.
The first use case is a topological sort to handle dependency graphs Closes #2159