It turns out that QEmu uses a REALLY weird and nonobvious type mechanism. This should support it now.