anchor.diff:  type
     TNumberBase = 2..36;                          // Number base or radix.
   
  +{$IF not declared(TRandom32Proc)}
  +  TRandom32Proc = function: UInt32;
  +  TRandomizeProc = procedure(NewSeed: UInt64);
  +{$IFEND}
  +
     PLimb = ^TLimb;                               // Knuth calls them "limbs".
     TLimb = type UInt32;                          // FWIW, I also like the recently spotted term "bigit".
     TMagnitude = TArray<TLimb>;                   // These BigIntegers use sign-magnitude format, hence the name.
  
positive.code:     FSize := 0;
  end;
  
  constructor BigInteger.Create(NumBits: Integer; const Random: IRandom);
  var
    Bytes: TArray<Byte>;
  
negative.code:     /// <summary>Creates a new random BigInteger of the given size. Uses the given IRandom to
      ///   generate the random value.</summary>
      constructor Create(NumBits: Integer; const Random: IRandom); overload;
  
      /// <summary>Creates a new random BigInteger of the given size. Uses the given Random32Proc function to
      ///   generate the random value.</summary>
      constructor Create(NumBits: Integer; Random: TRandom32Proc); overload;
  
  
      // -- Global numeric base related functions --
  