def search_loop
bend-collections@1.0.0.0 · src/containers/internal/intrusive_list.bend:198
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
198def search_loop(~S: Type, ~N: Data, ~V: Data, ~C: Data, ~next: S -> N -> S & Maybe<&2, N>, ~value: S -> N -> S & V, ~pred: S -> C -> V -> S & Bool, +fuel: Nat, +c: C, r: S & E.Search<N>) -> S & Result<&2, &1, E.Error, Maybe<&2, N>>:
199 match fuel r:
200 case _ Tuple{s, E.Found{node}}: (s, Done{Some{node}})
201 case _ Tuple{s, E.Seeking{None{}}}: (s, Done{None{}})
202 case 0n Tuple{s, E.Seeking{Some{node}}}: (s, Fail{E.LimitExceeded{}})
203 case 1n+p Tuple{s, E.Seeking{Some{node}}}:
204 search_loop(~S, ~N, ~V, ~C, ~next, ~value, ~pred, p, c, search_step(~S, ~N, ~V, ~C, ~next, ~value, ~pred, s, node, c))