the ptr in the node for reuse.
This can save a tremendous amount of time when resolving types in complex
expressions. One particular shader was taking several minutes to compile
but now compiles almost instantaneoulsy.
Used to track the number of components in a float/int/bool literal.
Helps with some typechecking things.
Fixes problems with calls such as "distance(v2, vec2(1.0, 2.0))"