         self = self.truncated(width: width)
         return self
     }
-    public var asRat:Rat {
+    public var asIntRat:IntRat {
         let q = self.truncated(width: Int.bitWidth - 1)
-        return Rat(num:Int(q.num), den:Int(q.den))
+        return IntRat(num:Int(q.num), den:Int(q.den))
     }
 }
 

    }
}

public struct FixRat<I:FixedRationalElement> : FixeRationalType {
    public typealias IntegerLiteralType = Int
    public typealias Element = I
    public var (num, den):(I, I)

    }
}

public typealias IntRat = FixRat<Int>

extension FixRat : Codable where Element: Codable {
    public enum CodingKeys : String, CodingKey {
