Allow incompatible base type when storing to opaque pointer