| Remove old_size argument from  gmp_realloc and gmp_free | cleanness; less confusing interface; very slight speedup | ✓ | ✓ | 
      
	| Somehow extend allocation interface to support
	  efficient  _mpz_newalloc | performance; useless to have realloc copy data which will
	not be used | ✓ | ✓ | 
      
	| Clean up  gmp_randstate_t struct from apparent mpz
	dependencies, unused fields | cleanness; memory use; allow randstate-based mpn functions |  | ✓ | 
      
	| Add return value to  mpz_sqrt(analogous to
	mpz_root) | usefulness | ✓ |  | 
      
	| Add return value to  mpz_gcd and mpz_gcdext, to
	  indicate if inputs are coprime. Allow null gcd output argument. | usefulness; for usecases which don't care about the
	  actual gcd, e.g.,  mpz_invert | ✓ |  | 
      
	| Clean up  *_str functions to forbid spaces | sense |  |  | 
      
	| Allow for  mpz operands of up to 250 by
	combining the _mp_size and _mp_alloc fieds into one 64-bit
	bitfield, encoding _mp_alloc as a custom float. | usefulness | ✓ | ✓ | 
      
	| Add  unsigned long
	  long functions,mpX_func_uj.  (Note that this
	  requires C99 for library compilation, while we should allow user code
	  to be compiled by any C90 compiler but then #define away
	  theujinterfaces.) | usefulness | ✓ | ✓ | 
      
	| Consider making mp_bitcnt_ta 64-bit integer also on
	32-bit hosts. | avoiding overflow for certain interfaces for otherwise in-range
	numbers | ✓ | ✓ | 
      
	| Consider changing return value for gmp_*printf*frominttolong.  Likewise, change * width
	  arguments' type. | allow printing of huge numbers while still returning sensible
	values. | ✓ | ✓ |