Diagnostics should remember their context when raised from within a generic node instantiation
Similarly to C++'s templates, it'd be great if a diagnostic thrown by a generic node instantiation showed the entire instantiation stack when printed. However, we must decide what happens when the node is instantiated from two locations.