def gcd_pick
import bend-collections-laws-crypto@1.0.0.0/src/math/generic.bend as Genericimport Base
import bend-collections-laws-crypto@1.0.0.0/src/math/num.bend as N
305def gcd_pick(~T: Data, ~op: N.Op<T> -> T, ~test: N.Test<T> -> Bool, +a: T, +b: T, fast: Bool) -> T:
306 match fast:
307 case True{}:
308 gcd_go(~T, ~op, ~test, fuel(), a, zst(~T, ~test, b))
309 case False{}:
310 gcd_bin(~T, ~op, ~test, a, b)