anchor.diff:  
   module ws =
   
  +    module WebSocket =
  +
  +        type VerifyClientCallbackSync =
  +
  +            Func<obj, bool>
  +
  +
  +
  +        and VerifyClientCallbackAsync =
  +
  +            Func<obj, Func<bool, unit>, unit>
  +
  +
  +
  +        and [<AllowNullLiteral>] IClientOptions =
  +
  +            abstract protocol: string option with get, set
  +
  +            abstract agent: obj option with get, set
  +
  +            abstract headers: obj option with get, set
  +
  +            abstract protocolVersion: obj option with get, set
  +
  +            abstract host: string option with get, set
  +
  +            abstract origin: string option with get, set
  +
  +            abstract pfx: obj option with get, set
  +
  +            abstract key: obj option with get, set
  +
  +            abstract passphrase: string option with get, set
  +
  +            abstract cert: obj option with get, set
  +
  +            abstract ca: ResizeArray<obj> option with get, set
  +
  +            abstract ciphers: string option with get, set
  +
  +            abstract rejectUnauthorized: bool option with get, set
  +
  +
  +
  +        and [<AllowNullLiteral>] IPerMessageDeflateOptions =
  +
  +            abstract serverNoContextTakeover: bool option with get, set
  +
  +            abstract clientNoContextTakeover: bool option with get, set
  +
  +            abstract serverMaxWindowBits: float option with get, set
  +
  +            abstract clientMaxWindowBits: float option with get, set
  +
  +            abstract memLevel: float option with get, set
  +
  +
  +
  +        and [<AllowNullLiteral>] IServerOptions =
  +
  +            abstract host: string option with get, set
  +
  +            abstract port: float option with get, set
  +
  +            abstract server: obj option with get, set
  +
  +            abstract verifyClient: U2<VerifyClientCallbackAsync, VerifyClientCallbackSync> option with get, set
  +
  +            abstract handleProtocols: obj option with get, set
  +
  +            abstract path: string option with get, set
  +
  +            abstract noServer: bool option with get, set
  +
  +            abstract disableHixie: bool option with get, set
  +
  +            abstract clientTracking: bool option with get, set
  +
  +            abstract perMessageDeflate: U2<bool, IPerMessageDeflateOptions> option with get, set
  +
  +
  +
  +        and [<AllowNullLiteral>] [<Import("WebSocket.Server","ws")>] Server(?options: IServerOptions, ?callback: Function) =
  +
  +            member __.options with get(): IServerOptions = jsNative and set(v: IServerOptions): unit = jsNative
  +
  +            member __.path with get(): string = jsNative and set(v: string): unit = jsNative
  +
  +            member __.clients with get(): ResizeArray<WebSocket> = jsNative and set(v: ResizeArray<WebSocket>): unit = jsNative
  +
  +            member __.close(?cb: Func<unit, obj>): unit = jsNative
  +
  +            member __.handleUpgrade(request: obj, socket: Net.Sockets.Socket, upgradeHead: Buffer, callback: Func<WebSocket, unit>): unit = jsNative
  +
  +            [<Emit("$0.on('error',$1...)")>] member __.on_error(cb: Func<Error, unit>): obj = jsNative
  +
  +            [<Emit("$0.on('headers',$1...)")>] member __.on_headers(cb: Func<ResizeArray<string>, unit>): obj = jsNative
  +
  +            [<Emit("$0.on('connection',$1...)")>] member __.on_connection(cb: Func<WebSocket, unit>): obj = jsNative
  +
  +            member __.on(``event``: string, listener: Func<unit, unit>): obj = jsNative
  +
  +            [<Emit("$0.addListener('error',$1...)")>] member __.addListener_error(cb: Func<Error, unit>): obj = jsNative
  +
  +            [<Emit("$0.addListener('headers',$1...)")>] member __.addListener_headers(cb: Func<ResizeArray<string>, unit>): obj = jsNative
  +
  +            [<Emit("$0.addListener('connection',$1...)")>] member __.addListener_connection(cb: Func<WebSocket, unit>): obj = jsNative
  +
  +            member __.addListener(``event``: string, listener: Func<unit, unit>): obj = jsNative
  +
  +
  +
  +        type [<Import("WebSocket","ws")>] Globals =
  +
  +            static member createServer(?options: IServerOptions, ?connectionListener: Func<WebSocket, unit>): Server = jsNative
  +
  +            static member connect(address: string, ?openListener: Function): unit = jsNative
  +
  +            static member createConnection(address: string, ?openListener: Function): unit = jsNative
  +
  +
  +
       type [<AllowNullLiteral>] [<Import("WebSocket","ws")>] WebSocket(address: string, ?protocols: U2<string, ResizeArray<string>>, ?options: WebSocket.IClientOptions) =
   
  -        interface NodeJS.EventEmitter
  -
           member __.CONNECTING with get(): float = jsNative and set(v: float): unit = jsNative
   
           member __.OPEN with get(): float = jsNative and set(v: float): unit = jsNative
  
positive.code: 
          member __.protocol with get(): string = jsNative and set(v: string): unit = jsNative
  
          member __.CONNECTING with get(): float = jsNative and set(v: float): unit = jsNative
  
          member __.OPEN with get(): float = jsNative and set(v: float): unit = jsNative
  
          member __.CLOSING with get(): float = jsNative and set(v: float): unit = jsNative
  
          member __.CLOSED with get(): float = jsNative and set(v: float): unit = jsNative
  
          member __.onopen with get(): Func<obj, unit> = jsNative and set(v: Func<obj, unit>): unit = jsNative
  
          member __.onerror with get(): Func<Error, unit> = jsNative and set(v: Func<Error, unit>): unit = jsNative
  