I'm not sure if this should always call `super` or not. It seems like we shouldn't bother with validation if type checking fails.