types: deal with corner case for Object.prototype (since it doesn't have a prototype -- is it the only one?); use null instead of undefined where subtypes are missing