double operator %(Object other) { _checkArg(other, "other"); return switch (other) { num() => value % other, DoubleWithTolerance() => value % other.value, _ => throw TypeError(), }; }