sig
  type class_
  type 'a interface
  type result
  class type supports =
    object method _QueryInterface : 'Mozilla.XPCOM.interface -> 'end
  class type supportsWeakReference = object  end
  class type iDRef =
    object method equals : 'Mozilla.XPCOM.interface -> bool end
  class type ['a] out =
    object method _get_value : 'method _set_value : '-> unit end
  class type inputStream = object  end
  class type appStartup = object method quit : int -> unit end
  class type badCertListener = object  end
  class type bufferedInputStream =
    object method init : #Mozilla.XPCOM.inputStream -> int -> unit end
  class type uRI =
    object
      method _get_host : string
      method _get_spec : string
      method _set_host : string -> unit
      method _set_spec : string -> unit
      method resolve : string -> string
    end
  class type interfaceRequestor =
    object
      method _QueryInterface : 'a interface -> 'a
      method getInterface : #Mozilla.XPCOM.iDRef -> 'b
    end
  class type channel =
    object
      method _QueryInterface : 'a interface -> 'a
      method _get_URI : Mozilla.XPCOM.uRI
      method _set_notificationCallbacks :
        #Mozilla.XPCOM.interfaceRequestor -> unit
    end
  class type consoleService =
    object method logStringMessage : string -> unit end
  class type cookie =
    object
      method _get_host : string
      method _get_name : string
      method _get_path : string
      method _get_value : string
    end
  class type ['a] simpleEnumerator =
    object method getNext : 'method hasMoreElements : bool end
  class type cookieManager =
    object
      method _get_enumerator :
        Mozilla.XPCOM.supports Mozilla.XPCOM.simpleEnumerator
      method remove : string -> string -> string -> bool -> unit
    end
  class type dOMNode =
    object
      method _QueryInterface : 'a interface -> 'a
      method _get_childNodes : Mozilla.XPCOM.dOMNode array
      method _get_firstChild : Mozilla.XPCOM.dOMNode
      method _get_lastChild : Mozilla.XPCOM.dOMNode
      method _get_nextSibling : Mozilla.XPCOM.dOMNode
      method _get_nodeName : string
      method _get_nodeType : int
      method _get_nodeValue : string
      method _get_parentNode : Mozilla.XPCOM.dOMNode
      method _get_previousSibling : Mozilla.XPCOM.dOMNode
    end
  class type dOMElement =
    object
      method _QueryInterface : 'a interface -> 'a
      method _get_childNodes : dOMNode array
      method _get_firstChild : dOMNode
      method _get_lastChild : dOMNode
      method _get_nextSibling : dOMNode
      method _get_nodeName : string
      method _get_nodeType : int
      method _get_nodeValue : string
      method _get_parentNode : dOMNode
      method _get_previousSibling : dOMNode
      method getAttribute : string -> string
      method setAttribute : string -> string -> unit
    end
  class type dOMEvent =
    object
      method _QueryInterface : 'a interface -> 'a
      method _get_bubbles : bool
      method _get_cancelable : bool
      method _get_eventPhase : int
      method _get_timeStamp : float
      method _get_type : string
      method initEvent : string -> bool -> bool -> unit
      method preventDefault : unit
      method stopPropagation : unit
    end
  class type dOMEventListener =
    object
      method _QueryInterface : 'a interface -> 'a
      method handleEvent : #Mozilla.XPCOM.dOMEvent -> unit
    end
  class type dOMEventTarget =
    object
      method _QueryInterface : 'a interface -> 'a
      method addEventListener :
        string -> #Mozilla.XPCOM.dOMEventListener -> bool -> unit
      method addEventListener_fun_ :
        string -> (#Mozilla.XPCOM.dOMEvent -> unit) -> bool -> unit
      method dispatchEvent : #Mozilla.XPCOM.dOMEvent -> bool
      method removeEventListener :
        string -> #Mozilla.XPCOM.dOMEventListener -> bool -> unit
      method removeEventListener_fun_ :
        string -> (#Mozilla.XPCOM.dOMEvent -> unit) -> bool -> unit
    end
  class type dOMAbstractView =
    object method _QueryInterface : 'a interface -> 'end
  class type dOMDocumentView =
    object
      method _QueryInterface : 'a interface -> 'a
      method _get_defaultView : Mozilla.XPCOM.dOMAbstractView
    end
  class type dOMUIEvent =
    object
      method _QueryInterface : 'a interface -> 'a
      method _get_bubbles : bool
      method _get_cancelable : bool
      method _get_eventPhase : int
      method _get_timeStamp : float
      method _get_type : string
      method initEvent : string -> bool -> bool -> unit
      method initUIEvent :
        string ->
        bool -> bool -> #Mozilla.XPCOM.dOMAbstractView -> int -> unit
      method preventDefault : unit
      method stopPropagation : unit
    end
  class type dOMKeyEvent =
    object
      method _QueryInterface : 'a interface -> 'a
      method _get_bubbles : bool
      method _get_cancelable : bool
      method _get_eventPhase : int
      method _get_timeStamp : float
      method _get_type : string
      method initEvent : string -> bool -> bool -> unit
      method initKeyEvent :
        string ->
        bool ->
        bool ->
        #Mozilla.XPCOM.dOMAbstractView ->
        bool -> bool -> bool -> bool -> int -> int
      method initUIEvent :
        string -> bool -> bool -> #dOMAbstractView -> int -> unit
      method preventDefault : unit
      method stopPropagation : unit
    end
  class type dOMMouseEvent =
    object
      method _QueryInterface : 'a interface -> 'a
      method _get_altKey : bool
      method _get_bubbles : bool
      method _get_button : int
      method _get_cancelable : bool
      method _get_clientX : int
      method _get_clientY : int
      method _get_ctrlKey : bool
      method _get_eventPhase : int
      method _get_metaKey : bool
      method _get_relatedTarget : #Mozilla.XPCOM.dOMEventTarget
      method _get_screenX : int
      method _get_screenY : int
      method _get_shiftKey : bool
      method _get_timeStamp : float
      method _get_type : string
      method initEvent : string -> bool -> bool -> unit
      method initMouseEvent :
        string ->
        bool ->
        bool ->
        #Mozilla.XPCOM.dOMAbstractView ->
        int ->
        int ->
        int ->
        int ->
        int ->
        bool ->
        bool -> bool -> bool -> int -> #Mozilla.XPCOM.dOMEventTarget -> unit
      method initUIEvent :
        string -> bool -> bool -> #dOMAbstractView -> int -> unit
      method preventDefault : unit
      method stopPropagation : unit
    end
  class type dOMDocument =
    object
      method _QueryInterface : 'a interface -> 'a
      method _get_childNodes : dOMNode array
      method _get_firstChild : dOMNode
      method _get_lastChild : dOMNode
      method _get_nextSibling : dOMNode
      method _get_nodeName : string
      method _get_nodeType : int
      method _get_nodeValue : string
      method _get_parentNode : dOMNode
      method _get_previousSibling : dOMNode
      method getElementById : string -> #Mozilla.XPCOM.dOMElement
    end
  class type dOMXMLDocument =
    object
      method _QueryInterface : 'a interface -> 'a
      method _get_childNodes : dOMNode array
      method _get_firstChild : dOMNode
      method _get_lastChild : dOMNode
      method _get_nextSibling : dOMNode
      method _get_nodeName : string
      method _get_nodeType : int
      method _get_nodeValue : string
      method _get_parentNode : dOMNode
      method _get_previousSibling : dOMNode
      method getElementById : string -> #dOMElement
    end
  class type dOMLocation =
    object
      method _QueryInterface : 'a interface -> 'a
      method _get_href : string
      method _set_href : string -> unit
    end
  class type dOMNSDocument =
    object
      method _QueryInterface : 'a interface -> 'a
      method _get_location : Mozilla.XPCOM.dOMLocation
    end
  class type dOMSerializer =
    object method serializeToString : #Mozilla.XPCOM.dOMNode -> string end
  class type dOMDocumentEvent =
    object
      method _QueryInterface : 'a interface -> 'a
      method createEvent : string -> #Mozilla.XPCOM.dOMEvent
    end
  class type dOMWindow =
    object
      method _QueryInterface : 'a interface -> 'a
      method _get_document : Mozilla.XPCOM.dOMDocument
    end
  class type dOMWindow2 =
    object
      method _QueryInterface : 'a interface -> 'a
      method _get_document : dOMDocument
    end
  class type dOMWindowInternal =
    object
      method _QueryInterface : 'a interface -> 'a
      method _get_document : dOMDocument
      method _get_location : string
      method _set_location : string -> unit
      method alert : string -> unit
      method back : unit
      method close : unit
    end
  class type dOMJSWindow =
    object
      method _QueryInterface : 'a interface -> 'a
      method clearInterval : int -> unit
      method clearTimeout : int -> unit
      method openDialog : string -> string -> string -> unit
      method setInterval : (unit -> unit) -> float -> int
      method setTimeout : (unit -> unit) -> float -> int
    end
  class type dOMXPathNSResolver =
    object
      method _QueryInterface : 'a interface -> 'a
      method lookupNamespaceURI : string -> string
    end
  class type dOMXPathEvaluator =
    object
      method _QueryInterface : 'a interface -> 'a
      method evaluate :
        string ->
        #Mozilla.XPCOM.dOMNode ->
        #Mozilla.XPCOM.dOMXPathNSResolver ->
        int -> #Mozilla.XPCOM.supports -> #Mozilla.XPCOM.supports
    end
  class type dOMXPathResult =
    object
      method _get_ANY_TYPE : int
      method _get_FIRST_ORDERED_NODE_TYPE : int
      method _get_ORDERED_NODE_ITERATOR_TYPE : int
      method _get_singleNodeValue : #Mozilla.XPCOM.dOMNode
      method iterateNext : #Mozilla.XPCOM.dOMNode
    end
  class type externalProtocolService =
    object
      method _QueryInterface : 'a interface -> 'a
      method externalProtocolHandlerExists : string -> bool
      method getApplicationDescription : string -> string
      method isExposedProtocol : string -> bool
      method loadURI : Mozilla.XPCOM.uRI -> Mozilla.XPCOM.supports -> unit
      method loadUrl : Mozilla.XPCOM.uRI -> unit
    end
  class type file =
    object method append : string -> unit method remove : bool -> unit end
  class type fileInputStream =
    object method init : #Mozilla.XPCOM.file -> int -> int -> int -> unit end
  class type outputStream =
    object method close : unit method write : string -> int -> unit end
  class type fileOutputStream =
    object
      method close : unit
      method init : #Mozilla.XPCOM.file -> int -> int -> int -> unit
      method write : string -> int -> unit
    end
  class type httpChannel =
    object
      method _QueryInterface : 'a interface -> 'a
      method _get_URI : uRI
      method _set_notificationCallbacks : #interfaceRequestor -> unit
      method setRequestHeader : string -> string -> bool -> unit
    end
  class type request =
    object
      method _QueryInterface : 'a interface -> 'a
      method _get_name : string
      method _get_status : int
      method cancel : int -> unit
      method isPending : bool
      method resume : unit
      method suspend : unit
    end
  class type requestObserver =
    object
      method _QueryInterface : 'a interface -> 'a
      method onStartRequest :
        #Mozilla.XPCOM.request -> #Mozilla.XPCOM.supports -> unit
      method onStopRequest :
        #Mozilla.XPCOM.request -> #Mozilla.XPCOM.supports -> int -> unit
    end
  class type streamListener =
    object
      method _QueryInterface : 'a interface -> 'a
      method onDataAvailable :
        #Mozilla.XPCOM.request ->
        #Mozilla.XPCOM.supports ->
        #Mozilla.XPCOM.inputStream -> float -> float -> unit
      method onStartRequest : #request -> #supports -> unit
      method onStopRequest : #request -> #supports -> int -> unit
    end
  class type inputStreamPump =
    object
      method _QueryInterface : 'a interface -> 'a
      method _get_name : string
      method _get_status : int
      method asyncRead :
        #Mozilla.XPCOM.streamListener -> #Mozilla.XPCOM.supports -> unit
      method cancel : int -> unit
      method init :
        #Mozilla.XPCOM.inputStream ->
        float -> float -> float -> float -> bool -> unit
      method isPending : bool
      method resume : unit
      method suspend : unit
    end
  class type iOService =
    object
      method _QueryInterface : 'a interface -> 'a
      method newURI :
        string -> string -> Mozilla.XPCOM.uRI -> Mozilla.XPCOM.uRI
    end
  class type localFile =
    object
      method append : string -> unit
      method remove : bool -> unit
      method setRelativeDescriptor :
        Mozilla.XPCOM.localFile -> string -> unit
    end
  class type mIMEInputStream =
    object
      method _set_addContentLength : bool -> unit
      method addHeader : string -> string -> unit
      method setData : #Mozilla.XPCOM.inputStream -> unit
    end
  class type multiplexInputStream =
    object method appendStream : #Mozilla.XPCOM.inputStream -> unit end
  class type observer =
    object
      method observe : #Mozilla.XPCOM.supports -> string -> string -> unit
    end
  class type observerService =
    object
      method addObserver : Mozilla.XPCOM.observer -> string -> bool -> unit
      method removeObserver : Mozilla.XPCOM.observer -> string -> unit
    end
  class type commandLine =
    object
      method findFlag : string -> bool -> int
      method getArgument : int -> string
      method handleFlag : string -> bool -> bool
      method handleFlagWithParam : string -> bool -> string
      method removeAruguments : int -> int -> unit
    end
  class type passwordManager =
    object
      method addReject : string -> unit
      method addUser : string -> string -> string -> unit
      method removeReject : string -> unit
      method removeUser : string -> string -> unit
    end
  class type passwordManagerInternal =
    object
      method addUserFull :
        string -> string -> string -> string -> string -> unit
      method findPasswordEntry :
        string ->
        string ->
        string ->
        string Mozilla.XPCOM.out ->
        string Mozilla.XPCOM.out -> string Mozilla.XPCOM.out -> unit
    end
  class type loginInfo =
    object
      method _QueryInterface : 'a interface -> 'a
      method _get_formSubmitURL : string
      method _get_hostname : string
      method _get_httpRealm : string
      method _get_password : string
      method _get_passwordField : string
      method _get_username : string
      method _get_usernameField : string
      method equals : Mozilla.XPCOM.loginInfo -> bool
      method equalsIngnorePassword : Mozilla.XPCOM.loginInfo -> bool
      method init :
        string ->
        string -> string -> string -> string -> string -> string -> unit
    end
  class type loginManager =
    object
      method addLogin : Mozilla.XPCOM.loginInfo -> unit
      method findLogins :
        int Mozilla.XPCOM.out ->
        string -> string -> string -> Mozilla.XPCOM.loginInfo array
      method getLoginSavingEnabled : string -> bool
      method modifyLogin :
        Mozilla.XPCOM.loginInfo -> Mozilla.XPCOM.loginInfo -> unit
      method removeLogin : Mozilla.XPCOM.loginInfo -> unit
      method setLoginSavingEnabled : string -> bool -> unit
    end
  class type permissionManager =
    object
      method _QueryInterface : 'a interface -> 'a
      method add : Mozilla.XPCOM.uRI -> string -> int -> unit
      method remove : string -> string -> unit
    end
  class type prefBranch =
    object
      method _get_PREF_BOOL : int
      method _get_PREF_INT : int
      method _get_PREF_STRING : int
      method getBoolPref : string -> bool
      method getCharPref : string -> string
      method getIntPref : string -> int
      method getPrefType : string -> int
      method setBoolPref : string -> bool -> unit
      method setCharPref : string -> string -> unit
      method setIntPref : string -> int -> unit
    end
  class type prefBranch2 =
    object
      method _get_PREF_BOOL : int
      method _get_PREF_INT : int
      method _get_PREF_STRING : int
      method addObserver : string -> Mozilla.XPCOM.observer -> bool -> unit
      method getBoolPref : string -> bool
      method getCharPref : string -> string
      method getIntPref : string -> int
      method getPrefType : string -> int
      method removeObserver : string -> Mozilla.XPCOM.observer -> unit
      method setBoolPref : string -> bool -> unit
      method setCharPref : string -> string -> unit
      method setIntPref : string -> int -> unit
    end
  class type prefService =
    object
      method getBranch : string -> Mozilla.XPCOM.prefBranch
      method getDefaultBranch : string -> Mozilla.XPCOM.prefBranch
      method readUserPrefs : Mozilla.XPCOM.file -> unit
      method resetPrefs : unit -> unit
      method resetUserPrefs : unit -> unit
      method savePrefFile : Mozilla.XPCOM.file -> unit
    end
  class type properties =
    object method get : string -> 'Mozilla.XPCOM.interface -> 'end
  class type scriptableInputStream =
    object
      method available : float
      method close : unit
      method init : #Mozilla.XPCOM.inputStream -> unit
      method read : float -> string
    end
  class type transport =
    object
      method close : int -> unit
      method openInputStream : int -> int -> int -> Mozilla.XPCOM.inputStream
      method openOutputStream :
        int -> int -> int -> Mozilla.XPCOM.outputStream
    end
  class type serverSocket =
    object
      method asyncListen : Mozilla.XPCOM.serverSocketListener -> unit
      method close : unit
      method init : int -> bool -> int -> unit
    end
  and serverSocketListener =
    object
      method onSocketAccepted :
        Mozilla.XPCOM.serverSocket -> #Mozilla.XPCOM.transport -> unit
      method onStopListening : Mozilla.XPCOM.serverSocket -> int -> unit
    end
  class type stringInputStream =
    object method setData : string -> int -> unit end
  class type uRIContentListener =
    object
      method _QueryInterface : 'a interface -> 'a
      method canHandleContent : string -> bool -> string Mozilla.XPCOM.out
      method doContent :
        string ->
        bool ->
        #Mozilla.XPCOM.request ->
        Mozilla.XPCOM.streamListener Mozilla.XPCOM.out -> bool
      method isPreferred : string -> string Mozilla.XPCOM.out -> bool
      method onStartURIOpen : #Mozilla.XPCOM.uRI -> bool
    end
  class type uRILoader =
    object
      method _QueryInterface : 'a interface -> 'a
      method registerContentListener :
        #Mozilla.XPCOM.uRIContentListener -> unit
      method unRegisterContentListener :
        #Mozilla.XPCOM.uRIContentListener -> unit
    end
  class type windowMediator =
    object
      method getEnumerator :
        string -> #Mozilla.XPCOM.dOMWindow Mozilla.XPCOM.simpleEnumerator
      method getMostRecentWindow : string -> #Mozilla.XPCOM.dOMWindow
    end
  class type xMLHttpRequest =
    object
      method _QueryInterface : 'a interface -> 'a
      method _get_channel : Mozilla.XPCOM.channel
      method _get_readyState : int
      method _get_responseText : string
      method _get_responseXML : #Mozilla.XPCOM.dOMXMLDocument
      method _get_status : int
      method _open : string -> string -> bool -> unit
      method _set_onload : (unit -> unit) -> unit
      method _set_onreadystatechange : (unit -> unit) -> unit
      method abort : unit
      method getResponseHeader : string -> string
      method overrideMimeType : string -> unit
      method send : #Mozilla.XPCOM.inputStream -> unit
      method setRequestHeader : string -> string -> unit
    end
  external createInstance :
    Mozilla.XPCOM.class_ -> 'Mozilla.XPCOM.interface -> 'a
    = "#createInstance"
  external getService :
    Mozilla.XPCOM.class_ -> 'Mozilla.XPCOM.interface -> 'a = "#getService"
  val _set_returnCode : Mozilla.XPCOM.result -> unit
  val appStartup : Mozilla.XPCOM.appStartup Mozilla.XPCOM.interface
  val badCertListener : Mozilla.XPCOM.badCertListener Mozilla.XPCOM.interface
  val bufferedInputStream :
    Mozilla.XPCOM.bufferedInputStream Mozilla.XPCOM.interface
  val channel : Mozilla.XPCOM.channel Mozilla.XPCOM.interface
  val consoleService : Mozilla.XPCOM.consoleService Mozilla.XPCOM.interface
  val cookie : Mozilla.XPCOM.cookie Mozilla.XPCOM.interface
  val cookieManager : Mozilla.XPCOM.cookieManager Mozilla.XPCOM.interface
  val dOMSerializer : Mozilla.XPCOM.dOMSerializer Mozilla.XPCOM.interface
  val externalProtocolService :
    Mozilla.XPCOM.externalProtocolService Mozilla.XPCOM.interface
  val file : Mozilla.XPCOM.file Mozilla.XPCOM.interface
  val fileInputStream : Mozilla.XPCOM.fileInputStream Mozilla.XPCOM.interface
  val fileOutputStream :
    Mozilla.XPCOM.fileOutputStream Mozilla.XPCOM.interface
  val httpChannel : Mozilla.XPCOM.httpChannel Mozilla.XPCOM.interface
  val inputStreamPump : Mozilla.XPCOM.inputStreamPump Mozilla.XPCOM.interface
  val iOService : Mozilla.XPCOM.iOService Mozilla.XPCOM.interface
  val localFile : Mozilla.XPCOM.localFile Mozilla.XPCOM.interface
  val loginInfo : Mozilla.XPCOM.loginInfo Mozilla.XPCOM.interface
  val loginManager : Mozilla.XPCOM.loginManager Mozilla.XPCOM.interface
  val mIMEInputStream : Mozilla.XPCOM.mIMEInputStream Mozilla.XPCOM.interface
  val multiplexInputStream :
    Mozilla.XPCOM.multiplexInputStream Mozilla.XPCOM.interface
  val observer : Mozilla.XPCOM.observer Mozilla.XPCOM.interface
  val observerService : Mozilla.XPCOM.observerService Mozilla.XPCOM.interface
  val commandLine : Mozilla.XPCOM.commandLine Mozilla.XPCOM.interface
  val passwordManager : Mozilla.XPCOM.passwordManager Mozilla.XPCOM.interface
  val passwordManagerInternal :
    Mozilla.XPCOM.passwordManagerInternal Mozilla.XPCOM.interface
  val permissionManager :
    Mozilla.XPCOM.permissionManager Mozilla.XPCOM.interface
  val prefService : Mozilla.XPCOM.prefService Mozilla.XPCOM.interface
  val prefBranch2 : Mozilla.XPCOM.prefBranch2 Mozilla.XPCOM.interface
  val properties : Mozilla.XPCOM.properties Mozilla.XPCOM.interface
  val requestObserver : Mozilla.XPCOM.requestObserver Mozilla.XPCOM.interface
  val scriptableInputStream :
    Mozilla.XPCOM.scriptableInputStream Mozilla.XPCOM.interface
  val serverSocket : Mozilla.XPCOM.serverSocket Mozilla.XPCOM.interface
  val streamListener : Mozilla.XPCOM.streamListener Mozilla.XPCOM.interface
  val stringInputStream :
    Mozilla.XPCOM.stringInputStream Mozilla.XPCOM.interface
  val supports : Mozilla.XPCOM.supports Mozilla.XPCOM.interface
  val supportsWeakReference :
    Mozilla.XPCOM.supportsWeakReference Mozilla.XPCOM.interface
  val uRI : Mozilla.XPCOM.uRI Mozilla.XPCOM.interface
  val uRIContentListener :
    Mozilla.XPCOM.uRIContentListener Mozilla.XPCOM.interface
  val uRILoader : Mozilla.XPCOM.uRILoader Mozilla.XPCOM.interface
  val windowMediator : Mozilla.XPCOM.windowMediator Mozilla.XPCOM.interface
  val xMLHttpRequest : Mozilla.XPCOM.xMLHttpRequest Mozilla.XPCOM.interface
  val appshell_window_mediator : Mozilla.XPCOM.class_
  val consoleservice : Mozilla.XPCOM.class_
  val cookiemanager : Mozilla.XPCOM.class_
  val file_directory_service : Mozilla.XPCOM.class_
  val file_local : Mozilla.XPCOM.class_
  val io_multiplex_input_stream : Mozilla.XPCOM.class_
  val io_string_input_stream : Mozilla.XPCOM.class_
  val loginmanager : Mozilla.XPCOM.class_
  val network_buffered_input_stream : Mozilla.XPCOM.class_
  val network_file_input_stream : Mozilla.XPCOM.class_
  val network_file_output_stream : Mozilla.XPCOM.class_
  val network_input_stream_pump : Mozilla.XPCOM.class_
  val network_io_service : Mozilla.XPCOM.class_
  val network_mime_input_stream : Mozilla.XPCOM.class_
  val network_server_socket : Mozilla.XPCOM.class_
  val network_simple_uri : Mozilla.XPCOM.class_
  val observer_service : Mozilla.XPCOM.class_
  val passwordmanager : Mozilla.XPCOM.class_
  val permissionmanager : Mozilla.XPCOM.class_
  val preferences_service : Mozilla.XPCOM.class_
  val scriptableinputstream : Mozilla.XPCOM.class_
  val toolkit_app_startup : Mozilla.XPCOM.class_
  val uriloader : Mozilla.XPCOM.class_
  val uriloader_external_protocol_service : Mozilla.XPCOM.class_
  val xmlextras_xmlhttprequest : Mozilla.XPCOM.class_
  val xmlextras_xmlserializer : Mozilla.XPCOM.class_
  val nOINTERFACE : Mozilla.XPCOM.result
  val getService_appshell_window_mediator :
    unit -> Mozilla.XPCOM.windowMediator
  val getService_consoleservice : unit -> Mozilla.XPCOM.consoleService
  val getService_cookiemanager : unit -> Mozilla.XPCOM.cookieManager
  val getService_uriloader_external_protocol_service :
    unit -> Mozilla.XPCOM.externalProtocolService
  val getService_file_directory_service : unit -> Mozilla.XPCOM.properties
  val getService_loginManager : unit -> Mozilla.XPCOM.loginManager
  val getService_network_io_service : unit -> Mozilla.XPCOM.iOService
  val getService_observer_service : unit -> Mozilla.XPCOM.observerService
  val getService_passwordmanager_passwordManager :
    unit -> Mozilla.XPCOM.passwordManager
  val getService_passwordmanager_passwordManagerInternal :
    unit -> Mozilla.XPCOM.passwordManagerInternal
  val getService_permissionmanager : unit -> Mozilla.XPCOM.permissionManager
  val getService_preferences_service : unit -> Mozilla.XPCOM.prefService
  val getService_preferences_branch : unit -> Mozilla.XPCOM.prefBranch2
  val getService_toolkit_app_startup : unit -> Mozilla.XPCOM.appStartup
  val getService_uriloader : unit -> Mozilla.XPCOM.uRILoader
  val createInstance_file_local : unit -> Mozilla.XPCOM.localFile
  val createInstance_loginInfo : unit -> Mozilla.XPCOM.loginInfo
  val createInstance_network_buffered_input_stream :
    unit -> Mozilla.XPCOM.bufferedInputStream
  val createInstance_network_file_input_stream :
    unit -> Mozilla.XPCOM.fileInputStream
  val createInstance_network_file_output_stream :
    unit -> Mozilla.XPCOM.fileOutputStream
  val createInstance_network_mime_input_stream :
    unit -> Mozilla.XPCOM.mIMEInputStream
  val createInstance_io_multiplex_input_stream :
    unit -> Mozilla.XPCOM.multiplexInputStream
  val createInstance_io_string_input_stream :
    unit -> Mozilla.XPCOM.stringInputStream
  val createInstance_scriptableinputstream :
    unit -> Mozilla.XPCOM.scriptableInputStream
  val createInstance_network_input_stream_pump :
    unit -> Mozilla.XPCOM.inputStreamPump
  val createInstance_network_server_socket :
    unit -> Mozilla.XPCOM.serverSocket
  val createInstance_network_simple_uri : unit -> Mozilla.XPCOM.uRI
  val createInstance_xmlextras_xmlhttprequest :
    unit -> Mozilla.XPCOM.xMLHttpRequest
  val createInstance_xmlextras_xmlserializer :
    unit -> Mozilla.XPCOM.dOMSerializer
  val make_out : '-> 'Mozilla.XPCOM.out
end