You can use the transaction queue feature for more convenient
communication with subprocesses using transactions.
Call tq-create to create a transaction queue communicating with a
specified process.  Then you can call tq-enqueue to send a
transaction.  tq-enqueue takes these five arguments:
(tq-enqueue tq question regexp closure fn)
tq is the queue to use.  (Specifying the queue has the effect of
specifying the process to talk to.)  The argument question is the
outgoing message which starts the transaction.  The argument fn is
the function to call when the corresponding answer comes back; it is
called with two arguments: closure, and the answer received.
The argument regexp is a regular expression to match the entire
answer; that's how tq-enqueue tells where the answer ends.
Call tq-close to shut down a transaction queue and terminate its
subprocess.