I’m currently working on restor, and have hit abit of a roadblock.
You can clone the git repo and follow along, or use the examples provided here. Note, that if you’re using the git repo, be ready to be jumping around files using a ctrl+click (If you’re using IntelliJ)
I have, essentially the following setup:

But, to create/insert a HRTB trait object, I run into the above error, which I believe is due to the following:for<'a> means any lifetime, which 'self (Or whatever you want to annotate it as) is not equal to or greater than 'a, because 'a could even be 'static, which my object isn’t.

The gist of it is that I made Container more generic, this allowed me to use the same lifetime 'a in the for<..> binder, this meant that all of the lifetimes aligned, and made this work!
This method will require lots of type aliases (otherwise there is just too much typing)

You can’t specify associated types in the generic impl, basically what you are saying when you do is: the associated types don’t depend on the lifetime of Unit. Which is wrong because your associated types depend on the lifetimes, I don’t think that you can provide a decent generic bound that restricts users to only use Unit until we get HRTB.

It will save a lot of typing and improve readablility for this section.
You will also have to start annotating lifetimes of &self to &'a self and using that lifetime in Borrowed<'a, U>/MutBorrowed<'a, U>