anchor.diff:    /// Insert value into [buffer] at the specified address, encoded as the
     /// specified number type.
     void setValue(int address, NumberType numberType, num value) {
  -    if (numberType.memoryInterpretation == double)
  +    if (numberType.memoryInterpretation == NumberType.float)
         value = value.toDouble();
       else
         value = value.toInt();
  
positive.code: /// Return the number of bytes required to represent `n` values.
  int calculateRequiredBytes(int n) => (log(n) / log(256)).ceil();
  
  /// Possible ways to interpret buffer.
  ///
  /// Other number encodings are not supported by [ByteData], so we don't support
  /// them either.
  class NumberType {
    static const String unsigned = 'u';
    static const String signed = 's';
  
    /// Number of bytes required to store a value of this type.
    final int sizeInBytes;
  
negative.code:     fp64
    ];
  
    String toString() => memoryInterpretation == float
        ? sizeInBytes == 4 ? 'float' : 'double'
        : '${memoryInterpretation}int$sizeInBits';
  }
  
  /// Wrapper class around [ByteData]. Its only purpose is to map a [NumberType]
  