So far, almost all of this code could be mistaken for the old TS 6 API. But under the hood, a lot of care has to go into pretty silly things like making sure when you get the same Type or Symbol twice, they have reference equality. That doesn't come for free anymore.