forked from extern/nushell
In some rare cases, the global predeclarations would clash, for example: > module spam { export def foo [] { "foo" } }; def foo [] { "bar" } In the example, the `foo [] { "bar" }` would get predeclared first, then the predeclaration would be overwritten and consumed by `foo [] {"foo"}` inside the module, then when parsing the actual `foo [] { "bar" }`, it would not find its predeclaration.