> But I'm surprised it made things slow: this code should only be involved
> when the user choose some *other* completion style, so could you check
> which method of the completion table was invoked?

It seems to be called with both `nil` and `lambda`. I've added this to the
FIXME comment.

It made things slow because when selecting a candidate with 
fido-vertical-mode it did another useless 0.5s/1s lookup for the thing 
I had just selected.  

> Maybe we should only use that code when `action` is one of `t` or `nil`?

Maybe.  Anyway in my tests it's working fine without it.  But `nil` doesn't 
break them, so I'm fine if you add them.  I'm just confused about the 
possible benefits that may come from that complexity.  I wish you could
post an illustrative example with some strings that a mere mortal might
follow along.

João