```rust #![allow(unused)] trait Yokeable<'a> { type Output; } trait Id { type Refl; } fn into_deserialized<M: Id>() -> M where M::Refl: for<'a> Yokeable<'a>, { try_map_project::<M, _>(|_| todo!()) } fn try_map_project<M: Id, F>(_f: F) -> M where M::Refl: for<'a> Yokeable<'a>, F: for<'a> FnOnce(&'a ()) -> <<M as Id>::Refl as Yokeable<'a>>::Output, { todo!() } fn main() {} ```