I would feel more comformable if this was

```rust
f(&mut *(self.inner as *mut SemInner<Q>))
```
rather than the `transmute`. (And also if `self.inner` was `*mut ()`, but that's not super-important.)