I went with the value passing version:
> val prepare: 'a t * 'a -> Ready.t
This one is equivalent to a prepend and a prepare with ().
> val prepare: 'a t * (unit -> 'a) -> Ready.t
So, it seems as though it is redundant with the other available
operations.
> In any case, once this is settled (if it isn't already :-), we should
> patch the thread regressions.
Done.