A bunch of type system work.
A bunch more craziness.