anchor.diff:          abstract defineProperty: o: obj * propertyKey: obj * attributes: PropertyDescriptor -> obj
   
       and [<AllowNullLiteral>] Math =
  -        abstract E: float with get, set
  -        abstract LN10: float with get, set
  -        abstract LN2: float with get, set
  -        abstract LOG2E: float with get, set
  -        abstract LOG10E: float with get, set
  -        abstract PI: float with get, set
  -        abstract SQRT1_2: float with get, set
  -        abstract SQRT2: float with get, set
  +        abstract E: float
  +        abstract LN10: float
  +        abstract LN2: float
  +        abstract LOG2E: float
  +        abstract LOG10E: float
  +        abstract PI: float
  +        abstract SQRT1_2: float
  +        abstract SQRT2: float
           abstract abs: x: float -> float
           abstract acos: x: float -> float
           abstract asin: x: float -> float
  
positive.code:     let [<Global>] WeakSet: WeakSetConstructor = jsNative
      let [<Global>] Promise: PromiseConstructor = jsNative
      let [<Global>] RegExp: RegExpConstructor = jsNative
      let [<Global>] ArrayBuffer: ArrayBufferConstructor = jsNative
      let [<Global>] DataView: DataViewConstructor = jsNative
      let [<Global>] eval: string -> string = jsNative
      let [<Global>] isFinite: float -> bool = jsNative
      let [<Global>] isNaN: float -> bool = jsNative
  
negative.code:         abstract buffer: ArrayBuffer
          abstract byteLength: int
          abstract byteOffset: int
  
      and ArrayBufferViewConstructor =
          [<Emit "new $0($1...)">] abstract Create: size: int -> ArrayBufferView
  
      and [<AllowNullLiteral>] DataView =
          abstract buffer: ArrayBuffer
  