         [x, y] = upcast a, b
         downcast x[namex] y
 
-  by__: (other) -> Fraction.normalized @this, other
+  by__: (other) -> Fraction.normalized this, other
 
   gcd__: (other) ->
     step = (a, b) -> if b.isPos() then -> step b, a.mod(b) else a

        new CheckedInt x.digits.first() * x.sign
      else
        new CheckedInt 0
    else if x instanceof Fraction and x.den.eq(1)
      x.num
    else
      x

  sgn__: -> @numer.sgn()
  inv__: -> Fraction.normalized @denom, @numer

  isPos__:  -> @numer.isPos()
  isNeg__:  -> @numer.isNeg()
  isZero__: -> @numer.isZero()

  isEven__: -> @denom.eq(1) and @numer.isEven()
  isOdd__:  -> @denom.eq(1) and @numer.isOdd()

  cmp__: (x) -> @minus__(x).numer.cmp 0

