def retire
bend-collections@1.0.0.0 · src/containers/doubly_linked_list.bend:90
import bend-collections@1.0.0.0/src/containers/doubly_linked_list.bend as DoublyLinkedList
import Base
import bend-collections@1.0.0.0/src/containers/internal/dlist_storage.bend as R
import bend-collections@1.0.0.0/src/containers/types/doubly_linked_list.bend as E
90def retire(~T: Data, tag: U32, depth: Nat, cap: U32, raw: R.DList<T>, gens: Array<U32>, +id: U32, +generation: U32, v: T, exhausted: Bool) -> DList<T> & E.Obs<T>:
91 match exhausted:
92 case True{}:
93 (DL{tag, depth, cap, raw, gens}, E.OVal{Done{v}})
94 case False{}:
95 (DL{tag, depth, cap, R.recycle_slot(~T, raw, id), Array.set(U32, gens, id, U32.inc(generation))}, E.OVal{Done{v}})