--- /dev/null
+import "Prelude"
+
+/// BigInteger ///
+
+importJava "java.math.BigInteger" where
+ "Arbitrary-precision integer"
+ data BigInteger
+
+ @JavaName equals
+ equalsBigInteger :: BigInteger -> BigInteger -> Boolean
+ @JavaName min
+ minBigInteger :: BigInteger -> BigInteger -> BigInteger
+ @JavaName max
+ maxBigInteger :: BigInteger -> BigInteger -> BigInteger
+ @JavaName toString
+ showBigInteger :: BigInteger -> String
+ @JavaName compareTo
+ compareBigInteger :: BigInteger -> BigInteger -> Integer
+ @JavaName hashCode
+ hashBigInteger :: BigInteger -> Integer
+ @JavaName ZERO
+ zeroBigInteger :: BigInteger
+ @JavaName ONE
+ oneBigInteger :: BigInteger
+ @JavaName valueOf
+ longToBigInteger :: Long -> BigInteger
+
+ @JavaName add
+ addBigInteger :: BigInteger -> BigInteger -> BigInteger
+ @JavaName negate
+ negBigInteger :: BigInteger -> BigInteger
+ @JavaName subtract
+ subBigInteger :: BigInteger -> BigInteger -> BigInteger
+ @JavaName multiply
+ mulBigInteger :: BigInteger -> BigInteger -> BigInteger
+ @JavaName divide
+ divBigInteger :: BigInteger -> BigInteger -> BigInteger
+ @JavaName remainder
+ remBigInteger :: BigInteger -> BigInteger -> BigInteger
+ @JavaName abs
+ absBigInteger :: BigInteger -> BigInteger
+ @JavaName intValue
+ toIntegerBigInteger :: BigInteger -> Integer
+
+instance Eq BigInteger where
+ (==) = equalsBigInteger
+
+instance Show BigInteger where
+ show = showBigInteger
+
+instance Ord BigInteger where
+ compare = compareBigInteger
+ min = minBigInteger
+ max = maxBigInteger
+
+instance Hashable BigInteger where
+ hashP v x = hashBigInteger v + 31*x
+
+instance Additive BigInteger where
+ zero = zeroBigInteger
+ (+) = addBigInteger
+
+instance Ring BigInteger where
+ neg = negBigInteger
+ (-) = subBigInteger
+ one = oneBigInteger
+ (*) = mulBigInteger
+ fromInteger x = longToBigInteger (fromInteger x)
+
+instance OrderedRing BigInteger where
+ abs = absBigInteger
+ toInteger = toIntegerBigInteger
+
+instance Integral BigInteger where
+ div = divBigInteger
+ mod = remBigInteger