Well, I am about to give up, because this is getting crazy. Sadly, your example
does not work for me, even with tweaks, as the most important part proc
newMyState cannot work, as it couldn't be able to return anything else aside
from Future[T] or Future[void]. What is even worse: even if that would work it
would kind of defeat the purpose of wrapping the procedures in the first place,
as I wanted to simplify them first. If I have to do something like waitFor
state.rsearch("test") in the final code, anyway, then there is no point in
wrapping everything. I wish the {.async.}'ed procs weren't so **EXTREMELY**
restricting. I guess, I'll have to swing synchronously and live with that until
I find a better way for an asynchronous implementation.