def tl_go_at
import bend-collections@1.0.0.0/src/containers/dynamic_array.bend as DynamicArrayimport Base
440# The executable to_list is the same indexed walk, compiled at a closed
441# element type; proofs/dynamic_array/closed.bend proves the two agree.
442def tl_go_at(~T: Data, k: Nat, acc: List<&2, T>, r: Array<Maybe<&2, T>> & Maybe<&2, T>) -> Array<Maybe<&2, T>> & List<&2, T>:
443 match k r:
444 case 0n Tuple{a, x}:
445 (a, acc)
446 case 1n+ +m Tuple{a, x}:
447 tl_go_at(~T, m, cons_some(T, x, acc), Array.get(Maybe<&2, T>, a, U32.from_nat(dec1(m))))