We don't want a pointer, texture, or sampler to exist in a structure or array. (In the future we'll want arrays of textures.)
Currently that's not captured.
Because of the recursive nature of these types, we can't just define a new class of types similar to host-shareable or IO-shareable. That would introduce circularity.