finish construct works with asyncs
finish construct works with asyncs

the construct `finish` delays the blocking of the asyncs until the
end. Currently, the following form is supported:

  finish {
    async { e1, ... }
    async { e2, ... }
  }

and it's translated to:

  let x0 = async { e1, ... }
      x1 = async { e2, ... }
  in
    get x0;
    get x1

parapluu/encore,parapluu/encore,parapluu/encore