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 Show BigInteger where show = showBigInteger instance Ord BigInteger where compare = compareBigInteger min = minBigInteger max = maxBigInteger 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