fn invertMod(a: anytype, p: @TypeOf(a)) @TypeOf(a)
fn invertMod(a: anytype, p: @TypeOf(a)) @TypeOf(a) { const r = extendedEuclidean(@TypeOf(a), a, p); assert(r.gcd == 1); return r.x; }