So it’s a quandary: I won’t yet know `beg’ and `end’ until _after_
interacting with iPython. Is there any way to “revise” ‘beg’ and ‘end’ in
a collection function returned from a CAPF?
Make your CAPF function return a beg..end that covers "the whole line"
and which returns a completion table in the form of a function.
That function will then defer to the iPython code for the grunt of its
work and will return the "real" boundaries via the
`completion-boundaries` method. This will probably require some caching
in the completion table so we don't call iPython too many times for
a single completion (like once for `completion-boundaries`, once for
`try-completion`, once for `all-completions`, etc…).