If we try to naively desugar this code in the same way that we did in the
lifetimes section, we run into some trouble:
+<!-- ignore: desugared code -->
```rust,ignore
struct Closure<F> {
data: (u8, u16),
This job requires The Magic of Higher-Rank Trait Bounds (HRTBs). The way we
desugar this is as follows:
+<!-- ignore: simplified code -->
```rust,ignore
where for<'a> F: Fn(&'a (u8, u16)) -> &'a u8,
```