{"version":3,"file":"semaphore.mjs","mappings":"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","names":["L","Tp","E","identity","O","R","ImmutableQueue","T","M","P","Acquisition","assertNonNegative","Semaphore","constructor","state","loop","bind","restore","releaseN","available","map_","get","fold","n","acc","_tag","tuple","right","d","left","dequeue","isNone","p","m","q","value","zipLeft_","succeed_","undefined","prepend","Error","toRelease","uninterruptible","flatten","chain_","modify_","s","unit","fold_","find","a","x","filter","prepare","succeed","make","await","push","of","withPermits_","e","bracket_","waitAcquire","release","withPermits","withPermit_","self","withPermit","withPermitsManaged","makeReserve","makeReservation_","withPermitManaged","makeSemaphore","permits","makeRef","unsafeMakeSemaphore","unsafeMakeRef"],"sourceRoot":"","sources":["../../_src/Semaphore/semaphore.ts"],"sourcesContent":[null]}