def held.pick
cswap-bend-cli@0.1.0.0 · lock.bend:46
import cswap-bend-cli@0.1.0.0/lock.bend as Lock
import Base
import cswap-bend-cli@0.1.0.0/fs.bend as Fs
46def held.pick(f: File, r: Fs.Res(Bool)) -> IO(Fs.Res(Maybe<&1, File>)):
47 match r:
48 case Fail{e}:
49 IO.bind(Unit, Fs.Res(Maybe<&1, File>), File.close(f), u => IO.pure(Fs.Res(Maybe<&1, File>), Fail{e}))
50 case Done{True{}}:
51 IO.pure(Fs.Res(Maybe<&1, File>), Done{Some{f}})
52 case Done{False{}}:
53 IO.bind(Unit, Fs.Res(Maybe<&1, File>), File.close(f), u => IO.pure(Fs.Res(Maybe<&1, File>), Done{None{}}))