@Override public void execute(Runnable task) throws InterruptedException { head.execute(task); }
@Override public Value<R> send(Value<M> m) throws InterruptedException { return tail.send(head.send(m)); }