Help is welcome. ---------------- For Put (Item : Big_Float; Exp => 0), we could spare time and space by claiming less digits if we can know the decimal exponent E in advance. We need roughly Aft + E digits. Any idea to do that quick? make clean ; grep -ir todo . Compare with a similar project based on the very promising headmaster tool, gathering information from C headers. https://github.com/ytomino/gmp-ada. Replace mpz_t with mpfr_t from libmpfr. Easy at this stage but boring. That would make a wide range of new numerical functions available (cos, sin, exp, ln,...). Please look at the end of gmp-binding.ads if you're interested. Vincent Diemunsch's work at http://code.google.com/p/adabindinggmpmpfr/ may help a lot. Port to other operating systems. This should not be very difficult as long as the GNAT Ada compiler and the GMP library are ported on that platform. It may be convenient to use pragma Import (Foo, "mpz_foo", GMP_Prefix & "mpz_foor"); and something similar with MPFR_Prefix, but it may be more complex than it seems, since there are MANY prefixes used by the GCC version of GMP... Add the complex type provided by libmpc, with conventions from the ARM. If somebody is aware about Remote_Types and such esoteric things, please see what ameliorations can be made. Child package Big_Rationals provides, guess what, an integer fraction type. Get/Put/Image/Value are not provided for this type, since it is hard to find something useful for everyone with bases, exponents, space and fractions bar conventions...), and easy to build your own procedures using the Big_Integer Text_IO procedures. If someone uses it, (s)he'll have to define a clean interface.