That wouldn't quite work - it would have to be `(Option<T>, U)` (I think) because we need to distinguish between the NotPresent and Unused cases in privacy::check_path. But that way would work. Alternatively we could use Option<(T, U)> and let None mean NotPresent and remove the NotPresent variant - we could then replace U with bool. That is probably a nicer design what I've done so far. I'll see if it works.