factory Ratio(int num, int den) { if (den < 0) { num *= -1; den *= -1; } final d = num.gcd(den); if (d > 1) { num = num ~/ d; den = den ~/ d; } return Ratio._internal(num, den); }