Functions compute their type as soon as we add their '{' child, so we can properly analyze the block's contents.
Poor implementation of assignment (objects and functions) and object/scope cloning