anchor.diff:          abstract pattern: string option with get, set
   
       and DocumentSelector =
  -        U3<string, DocumentFilter, ResizeArray<obj>>
  +        U3<string, DocumentFilter, ResizeArray<U2<string, DocumentFilter>>>
   
       and CodeActionContext =
           abstract diagnostics: ResizeArray<Diagnostic> with get, set
  
positive.code: 
      type Globals =
          abstract version: string with get, set
  
      let [<Import("vscode")>] Globals: Globals = failwith "JS only"
  
  
negative.code: open System
  open Fabel.Core
  open Fabel.Import.JS
  
  type Thenable<'R> =
      abstract ``then``: ?onfulfilled: Func<'R, U2<TResult, Thenable<TResult>>> * ?onrejected: Func<obj, U2<TResult, Thenable<TResult>>> -> Thenable<TResult>
      abstract ``then``: ?onfulfilled: Func<'R, U2<TResult, Thenable<TResult>>> * ?onrejected: Func<obj, unit> -> Thenable<TResult>
  
  and Promise<'T> =
      inherit Thenable<'T>
      abstract ``then``: ?onfulfilled: Func<'T, U2<TResult, Thenable<TResult>>> * ?onrejected: Func<obj, U2<TResult, Thenable<TResult>>> -> Promise<TResult>
      abstract ``then``: ?onfulfilled: Func<'T, U2<TResult, Thenable<TResult>>> * ?onrejected: Func<obj, unit> -> Promise<TResult>
      abstract catch: ?onrejected: Func<obj, U2<'T, Thenable<'T>>> -> Promise<'T>
  
  and PromiseConstructor =
      abstract createNew: executor: Func<Func<U2<'T, Thenable<'T>>, unit>, Func<obj, unit>, unit> -> Promise<'T>
      abstract all: values: ResizeArray<U2<'T, Thenable<'T>>> -> Promise<ResizeArray<'T>>
      abstract race: values: ResizeArray<U2<'T, Thenable<'T>>> -> Promise<'T>
      abstract reject: reason: obj -> Promise<unit>
      abstract reject: reason: obj -> Promise<'T>
      abstract resolve: value: U2<'T, Thenable<'T>> -> Promise<'T>
      abstract resolve: unit -> Promise<unit>
  
  module Globals =
      let [<Global>] Promise: PromiseConstructor = failwith "JS only"
  
  module vscode =
      type Command =
  