I actually wonder if it is even necessary to store the `@options` anymore. I think most of the time we use the options to construct the type, and then never use them again. In fact, I would probably prefer that if someone needs an option they fetch it and store it in an ivar (like we do here with `@required`).

I think maybe we should remove this ivar.