1. How about letting the HISTORY argument to read functions (e.g.
`read-string') be a list of history variables, in addition to letting it be
a single history variable? The histories would be appended for user
retrieval. The convention for saving the user input could be either that it
is added to only the first history or that it is added to each of the
histories.
Then, for example, you could write this and let users use a regexp from
either history:
(read-string "Regexp: " nil '(hi-lock-regexp-history regexp-history))