def bnx2
import bend-collections@1.0.0.0/src/math/generic.bend as Genericimport Base
import bend-collections@1.0.0.0/src/math/num.bend as N
234def bnx2(~T: Data, ~op: N.Op<T> -> T, ~test: N.Test<T> -> Bool, +a: T, +b: T, less: Bool) -> T & (T & (Bool & Bool)):
235 match less:
236 case True{}:
237 (b, zsm(~T, ~test, b, op(N.Sub{a, b})))
238 case False{}:
239 (a, zsm(~T, ~test, a, op(N.Sub{b, a})))