The Zarith library implements arithmetic and logical operations over arbitrary precision numbers. It uses GMP to efficiently implement arithmetic over large numbers. Small integers are represented as Caml unboxed integers for speed and space economy.