def first
import bend-kit-regex@0.8.0.0/regex.bend as Regeximport Base
757# fuel: each pc expands once and pushes at most two pcs.
758def first(fuel: Nat, +prog: List<&2, Inst>, st: Fs) -> Maybe<&2, List<&2, Inst>>:
759 match fuel:
760 case 0n:
761 None{}
762 case 1n+f:
763 match st:
764 case FsAny{}:
765 None{}
766 case Fs{Nil{}, seen, sets}:
767 Some{sets}
768 case Fs{Con{+pc, t}, +seen, sets}:
769 first(f, prog, first.seen(List.contains(~U32, ~U32.is_eq, seen, pc), prog, pc, t, seen, sets))