anchor.diff:          abstract setUint16: byteOffset: int * value: uint16 * ?littleEndian: bool -> unit
           abstract setUint32: byteOffset: int * value: uint32 * ?littleEndian: bool -> unit
   
  -    // TODO: Add constructors for other typed arrays from buffer?
       and [<AllowNullLiteral>] DataViewConstructor =
           [<Emit("new $0($1...)")>] abstract Create: buffer: ArrayBuffer * ?byteOffset: int * ?byteLength: float -> DataView
  +
  +    and TypedArray =
  +      abstract buffer: ArrayBuffer
  +      abstract byteLength: int
  +      abstract byteOffset: int
  +      abstract length: int
  +      abstract copyWithin: targetStartIndex:int * start:int * ? ``end``:int -> unit
  +      abstract entries: unit -> obj
  +
  +    and TypedArray<'T> =
  +      inherit TypedArray
  +      abstract fill: value:obj * ?``begin``:int * ?``end``:int -> TypedArray<'T>
  +      abstract filter: ('T -> int -> TypedArray<'T> -> bool) -> TypedArray<'T>
  +      abstract filter: ('T -> int -> bool) -> TypedArray<'T>
  +      abstract filter: ('T -> bool) -> TypedArray<'T>
  +      abstract find: ('T -> int -> TypedArray<'T> -> bool) -> 'T option
  +      abstract find: ('T -> int -> bool) -> 'T option
  +      abstract find: ('T -> bool) -> 'T option
  +      abstract findIndex: ('T -> int -> TypedArray<'T> -> bool) -> int
  +      abstract findIndex: ('T -> int -> bool) -> int
  +      abstract findIndex: ('T -> bool) -> int
  +      abstract forEach: ('T -> int -> TypedArray<'T> -> bool) -> unit
  +      abstract forEach: ('T -> int -> bool) -> unit
  +      abstract forEach: ('T -> bool) -> unit
  +      abstract includes: searchElement:'T * ?fromIndex:int -> bool
  +      abstract indexOf: searchElement:'T * ?fromIndex:int -> int
  +      abstract join: separator:string -> string
  +      abstract keys: unit -> obj
  +      abstract lastIndexOf: searchElement:'T * ?fromIndex:int -> int
  +      abstract map: ('T -> int -> TypedArray<'T> -> 'U) -> TypedArray<'U>
  +      abstract map: ('T -> int -> 'U) -> TypedArray<'U>
  +      abstract map: ('T -> 'U) -> TypedArray<'U>
  +      abstract reduce: ('State -> 'T -> int -> TypedArray<'T> -> 'State) * state:'State -> 'State
  +      abstract reduce: ('State -> 'T -> int -> 'State) * state:'State -> 'State
  +      abstract reduce: ('State -> 'T -> 'State) * state:'State -> 'State
  +      abstract reduceRight: ('State -> 'T -> int -> TypedArray<'T> -> 'State) * state:'State -> 'State
  +      abstract reduceRight: ('State -> 'T -> int -> 'State) * state:'State -> 'State
  +      abstract reduceRight: ('State -> 'T -> 'State) * state:'State -> 'State
  +      abstract reverse: unit -> TypedArray<'T>
  +      abstract set: source:Array * ?offset:int -> TypedArray<'T>
  +      abstract set: source:#TypedArray * ?offset:int -> TypedArray<'T>
  +      abstract slice: ?``begin``:int * ?``end``:int -> TypedArray<'T>
  +      abstract some: ('T -> int -> TypedArray<'T> -> bool) -> bool
  +      abstract some: ('T -> int -> bool) -> bool
  +      abstract some: ('T -> bool) -> bool
  +      abstract sort: ?sortFunction:('T -> 'T -> int) -> bool
  +      abstract subarray: ?``begin``:int * ?``end``:int -> TypedArray<'T>
  +      abstract values: unit -> obj
  +
  +
  +    and Int8Array =
  +      inherit TypedArray<Int8Array>
  +
  +    and Int8ArrayConstructor =
  +      [<Emit "new $0($1...)">] abstract Create: size: int -> Int8Array
  +      [<Emit "new $0($1...)">] abstract Create: typedArray: TypedArray -> Int8Array
  +      [<Emit "new $0($1...)">] abstract Create: buffer: ArrayBuffer * ?offset:int * ?length:int -> Int8Array
  +      [<Emit "new $0($1...)">] abstract Create: data:obj -> Int8Array
  +
  +
  +    and Uint8Array =
  +      inherit TypedArray<Uint8Array>
  +
  +    and Uint8ArrayConstructor =
  +      [<Emit "new $0($1...)">] abstract Create: size: int -> Uint8Array
  +      [<Emit "new $0($1...)">] abstract Create: typedArray: TypedArray -> Uint8Array
  +      [<Emit "new $0($1...)">] abstract Create: buffer: ArrayBuffer * ?offset:int * ?length:int -> Uint8Array
  +      [<Emit "new $0($1...)">] abstract Create: data:obj -> Uint8Array
  +
  +
  +    and Uint8ClampedArray =
  +      inherit TypedArray<Uint8ClampedArray>
  +
  +    and Uint8ClampedArrayConstructor =
  +      [<Emit "new $0($1...)">] abstract Create: size: int -> Uint8ClampedArray
  +      [<Emit "new $0($1...)">] abstract Create: typedArray: TypedArray -> Uint8ClampedArray
  +      [<Emit "new $0($1...)">] abstract Create: buffer: ArrayBuffer * ?offset:int * ?length:int -> Uint8ClampedArray
  +      [<Emit "new $0($1...)">] abstract Create: data:obj -> Uint8ClampedArray
  +      abstract slice: ?``begin``:int * ?``end``:int -> Uint8ClampedArrayConstructor
  +
  +
  +    and Int16Array =
  +      inherit TypedArray<Int16Array>
  +
  +    and Int16ArrayConstructor =
  +      [<Emit "new $0($1...)">] abstract Create: size: int -> Int16Array
  +      [<Emit "new $0($1...)">] abstract Create: typedArray: TypedArray -> Int16Array
  +      [<Emit "new $0($1...)">] abstract Create: buffer: ArrayBuffer * ?offset:int * ?length:int -> Int16Array
  +      [<Emit "new $0($1...)">] abstract Create: data:obj -> Int16Array
  +
  +
  +    and Uint16Array =
  +      inherit TypedArray<Uint16Array>
  +
  +    and Uint16ArrayConstructor =
  +      [<Emit "new $0($1...)">] abstract Create: size: int -> Uint16Array
  +      [<Emit "new $0($1...)">] abstract Create: typedArray: TypedArray -> Uint16Array
  +      [<Emit "new $0($1...)">] abstract Create: buffer: ArrayBuffer * ?offset:int * ?length:int -> Uint16Array
  +      [<Emit "new $0($1...)">] abstract Create: data:obj -> Uint16Array
  +
  +
  +    and Int32Array =
  +      inherit TypedArray<Int32Array>
  +
  +    and Int32ArrayConstructor =
  +      [<Emit "new $0($1...)">] abstract Create: size: int -> Int32Array
  +      [<Emit "new $0($1...)">] abstract Create: typedArray: TypedArray -> Int32Array
  +      [<Emit "new $0($1...)">] abstract Create: buffer: ArrayBuffer * ?offset:int * ?length:int -> Int32Array
  +      [<Emit "new $0($1...)">] abstract Create: data:obj -> Int32Array
  +
  +
  +    and Uint32Array =
  +      inherit TypedArray<Uint32Array>
  +
  +    and Uint32ArrayConstructor =
  +      [<Emit "new $0($1...)">] abstract Create: size: int -> Uint32Array
  +      [<Emit "new $0($1...)">] abstract Create: typedArray: TypedArray -> Uint32Array
  +      [<Emit "new $0($1...)">] abstract Create: buffer: ArrayBuffer * ?offset:int * ?length:int -> Uint32Array
  +      [<Emit "new $0($1...)">] abstract Create: data:obj -> Uint32Array
  +
  +
  +    and Float32Array =
  +      inherit TypedArray<Float32Array>
  +
  +    and Float32ArrayConstructor =
  +      [<Emit "new $0($1...)">] abstract Create: size: int -> Float32Array
  +      [<Emit "new $0($1...)">] abstract Create: typedArray: TypedArray -> Float32Array
  +      [<Emit "new $0($1...)">] abstract Create: buffer: ArrayBuffer * ?offset:int * ?length:int -> Float32Array
  +      [<Emit "new $0($1...)">] abstract Create: data:obj -> Float32Array
  +
  +
  +    and Float64Array =
  +      inherit TypedArray<Float64Array>
  +
  +    and Float64ArrayConstructor =
  +      [<Emit "new $0($1...)">] abstract Create: size: int -> Float64Array
  +      [<Emit "new $0($1...)">] abstract Create: typedArray: TypedArray -> Float64Array
  +      [<Emit "new $0($1...)">] abstract Create: buffer: ArrayBuffer * ?offset:int * ?length:int -> Float64Array
  +      [<Emit "new $0($1...)">] abstract Create: data:obj -> Float64Array
  +
  +
  +    and BigInt64Array =
  +      inherit TypedArray<BigInt64Array>
  +
  +    and BigInt64ArrayConstructor =
  +      [<Emit "new $0($1...)">] abstract Create: size: int -> BigInt64Array
  +      [<Emit "new $0($1...)">] abstract Create: typedArray: TypedArray -> BigInt64Array
  +      [<Emit "new $0($1...)">] abstract Create: buffer: ArrayBuffer * ?offset:int * ?length:int -> BigInt64Array
  +      [<Emit "new $0($1...)">] abstract Create: data:obj -> BigInt64Array
  +
  +
  +    and BigUint64Array =
  +      inherit TypedArray<BigUint64Array>
  +
  +    and BigUint64ArrayConstructor =
  +      [<Emit "new $0($1...)">] abstract Create: size: int -> BigUint64Array
  +      [<Emit "new $0($1...)">] abstract Create: typedArray: TypedArray -> BigUint64Array
  +      [<Emit "new $0($1...)">] abstract Create: buffer: ArrayBuffer * ?offset:int * ?length:int -> BigUint64Array
  +      [<Emit "new $0($1...)">] abstract Create: data:obj -> BigUint64Array
  +
   
       and [<AllowNullLiteral>] Console =
           abstract ``assert``: ?test: bool * ?message: string * [<ParamArray>] optionalParams: obj[] -> unit
  
positive.code:         [<Emit("new $0($1...)")>] abstract Create: ?iterable: seq<'K * 'V> -> WeakMap<'K, 'V>
  
      and [<AllowNullLiteral>] Set<'T> =
          abstract size: float with get, set
          abstract add: value: 'T -> Set<'T>
          abstract clear: unit -> unit
          abstract delete: value: 'T -> bool
  
negative.code:         abstract stringify: value: obj * ?replacer: (string->obj->obj) * ?space: obj -> string
  
      and [<AllowNullLiteral>] Map<'K, 'V> =
          abstract size: int
          abstract clear: unit -> unit
          abstract delete: key: 'K -> bool
          abstract entries: unit -> seq<'K * 'V>
  