open IO -- not in the run/ directory because then it would be run with -j0 #eval do let promise ← Promise.new promise.resolve 42 assert! promise.result.get = 42 #eval do let ch ← Channel.new let out ← IO.mkRef #[] ch.send 0 let drainFinished ← ch.forAsync fun x => out.modify (·.push x) ch.send 1 ch.close ch.send 2 IO.wait drainFinished assert! (← out.get) = #[0, 1]