My current model of natural language is that it could and should be modeled as a programming language, and that this modeling could prove fruitful, and possibly vital for producing AGI
If language is code, it is fundamentally a pure expression rewrite system, like Wolfram. This is the root of the "signs only point to signs" problem, concretion is only possible at runtime. Looseness can be afforded because of the robustness and extensibility of its interpreter.
All language concepts available present in their final form. The haskell type system has nothing on our type system. Expressions can be curried, transformed, inverted, dereferenced. None of this is surprising – programming languages constructs are mostly formalized derived from natural language (mostly english).