def clear_loop
bend-collections@1.0.0.0 · src/containers/internal/intrusive_list.bend:332
import bend-collections@1.0.0.0/src/containers/internal/intrusive_list.bend as IntrusiveList
import Base
import bend-collections@1.0.0.0/src/containers/types/intrusive_doubly_linked_list.bend as E
332def clear_loop(~S: Type, ~N: Data, ~C: Data, ~next: S -> N -> S & Maybe<&2, N>, ~set_next: S -> N -> Maybe<&2, N> -> S, ~set_prev: S -> N -> Maybe<&2, N> -> S, ~post_remove: S -> C -> N -> S, +fuel: Nat, +head: N, +c: C, r: S & Maybe<&2, N>) -> S & Result<&2, &1, E.Error, Unit>:
333 match fuel r:
334 case 0n Tuple{s, cursor}: (s, Fail{E.LimitExceeded{}})
335 case 1n+p Tuple{s, None{}}:
336 (post_remove(set_next(s, head, None{}), c, head), Done{Unit{}})
337 case 1n+p Tuple{s, Some{node}}:
338 clear_loop(~S, ~N, ~C, ~next, ~set_next, ~set_prev, ~post_remove, p, head, c, clear_step(~S, ~N, ~C, ~next, ~set_next, ~set_prev, ~post_remove, s, node, c))