Implied lifetime of parameter to FnOnce trait

impl<F: Fn(A)> Foo for F {}

Lets try answering this using the nomicon linked above:

For impl headers, all types are input.

Each elided lifetime in input position becomes a distinct lifetime parameter.

So, the elided lifetime becomes distinct. But the rest of the page only talks about resolving elided output lifetimes, which is not relevant here.

The HRTB article is more useful however, and points us to the answer:

impl<F> Foo for F
where
    for<'a> F: Fn(A<'a>),
{}

Thus, the lifetime is not an existential as implied by the error message (on nightly):

= note: ...but it actually implements FnOnce<(A<'2>,)>, for some specific lifetime '2

(Perhaps what is omitted here is: for<'2>)