This reminds me of this exercise[1] or perhaps this topic. You can get it to work to some extent, but there's usually a significant inference hit and/or a ton of boilerplate, especially when you extend arity. You may also have to make some compromises if you're going to try to take multiple args but return a single Value<'_> somehow (it's not clear to me what you want from larger arities).
For example, one way to work around this is by starting with single lifetime traits and wrapping those up in higher-ranked lifetime traits, but it will completely ruin inference. If you can find a way to get the Fn bound back to being directly on the implementation, that usually helps inference, but may involve compromises like the PhantomData suggestion,[2] or implementing for specific type constructors instead of generically.