bringing call site specialization back. functions without type annotations will emit a stub that holds on to the original source code, and invocations will use the types of their arguments to try and specialize. the typed versions of lerp and v3 here were specialized from main2