oh god. I thought I'd fill out the resolveTypes function of module loading but it turns out it's a five-pass loader that loads data in place