def clear_head

bend-collections@1.0.0.0 · src/containers/internal/intrusive_list.bend:340

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

340def clear_head(~S: Type, ~N: Data, ~H: Data, ~I: Data, ~C: Data, ~get_head: S -> H -> S & Maybe<&2, N>, ~next: S -> N -> S & Maybe<&2, N>, ~set_next: S -> N -> Maybe<&2, N> -> S, ~set_prev: S -> N -> Maybe<&2, N> -> S, ~set_head: S -> I -> Maybe<&2, N> -> S, ~post_remove: S -> C -> N -> S, +fuel: Nat, s: S, +h: H, +i: I, +c: C, +head: Maybe<&2, N>) -> S & Result<&2, &1, E.Error, Unit>:
341  match fuel head:
342    case _ None{}: (s, Done{Unit{}})
343    case 0n Some{node}: (s, Fail{E.LimitExceeded{}})
344    case 1n+p Some{node}:
345      clear_loop(~S, ~N, ~C, ~next, ~set_next, ~set_prev, ~post_remove, 1n+p, node, c, next(set_head(s, i, None{}), node))

Uses (8)

Used by (1)