sig
  type interval_id
  type timeout_id
  class type node =
    object
      method _get_childNodes : < .. > array
      method _get_firstChild : < .. >
      method _get_lastChild : < .. >
      method _get_nextSibling : < .. >
      method _get_nodeName : string
      method _get_nodeType : int
      method _get_nodeValue : string
      method _get_parentNode : < .. >
      method _get_previousSibling : < .. >
      method _set_nodeValue : string -> unit
      method appendChild : < .. > -> < .. >
      method insertBefore : < .. > -> < .. > -> < .. >
      method removeChild : < .. > -> < .. >
      method replaceChild : < .. > -> < .. > -> < .. >
    end
  class type documentFragment =
    object
      method _get_childNodes : < .. > array
      method _get_firstChild : < .. >
      method _get_lastChild : < .. >
      method _get_nextSibling : < .. >
      method _get_nodeName : string
      method _get_nodeType : int
      method _get_nodeValue : string
      method _get_parentNode : < .. >
      method _get_previousSibling : < .. >
      method _set_nodeValue : string -> unit
      method appendChild : < .. > -> < .. >
      method insertBefore : < .. > -> < .. > -> < .. >
      method removeChild : < .. > -> < .. >
      method replaceChild : < .. > -> < .. > -> < .. >
    end
  class type abstractView = object  end
  class type event =
    object
      method _get_bubbles : bool
      method _get_cancelable : bool
      method _get_currentTarget : < .. >
      method _get_eventPhase : int
      method _get_target : < .. >
      method _get_timeStamp : float
      method _get_type : string
      method initEvent : string -> bool -> bool -> unit
      method preventDefault : unit
      method stopPropagation : unit
    end
  class type uIEvent =
    object
      method _get_bubbles : bool
      method _get_cancelable : bool
      method _get_currentTarget : < .. >
      method _get_detail : int
      method _get_eventPhase : int
      method _get_target : < .. >
      method _get_timeStamp : float
      method _get_type : string
      method _get_view : Dom.abstractView
      method initEvent : string -> bool -> bool -> unit
      method initUIEvent :
        string -> bool -> bool -> Dom.abstractView -> int -> unit
      method preventDefault : unit
      method stopPropagation : unit
    end
  class type keyEvent =
    object
      method _get_altKey : bool
      method _get_bubbles : bool
      method _get_cancelable : bool
      method _get_ctrlKey : bool
      method _get_currentTarget : < .. >
      method _get_eventPhase : int
      method _get_inputGenerated : bool
      method _get_keyCode : int
      method _get_keyVal : int
      method _get_metaKey : bool
      method _get_numPad : bool
      method _get_outputString : string
      method _get_shiftKey : bool
      method _get_target : < .. >
      method _get_timeStamp : float
      method _get_type : string
      method _get_virtKeyVal : int
      method checkModifier : int -> bool
      method initEvent : string -> bool -> bool -> unit
      method initKeyEvent :
        string ->
        bool ->
        bool ->
        Dom.abstractView ->
        int -> string -> int -> int -> bool -> bool -> unit
      method initModifier : int -> bool -> unit
      method preventDefault : unit
      method stopPropagation : unit
    end
  class type mouseEvent =
    object
      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_currentTarget : < .. >
      method _get_detail : int
      method _get_eventPhase : int
      method _get_metaKey : bool
      method _get_relatedTarget : < .. >
      method _get_screenX : int
      method _get_screenY : int
      method _get_shiftKey : bool
      method _get_target : < .. >
      method _get_timeStamp : float
      method _get_type : string
      method _get_view : abstractView
      method initEvent : string -> bool -> bool -> unit
      method initMouseEvent :
        string ->
        bool ->
        bool ->
        Dom.abstractView ->
        int ->
        int ->
        int ->
        int -> int -> bool -> bool -> bool -> bool -> int -> < .. > -> unit
      method initUIEvent :
        string -> bool -> bool -> abstractView -> int -> unit
      method preventDefault : unit
      method stopPropagation : unit
    end
  class type style =
    object
      method _get_background : string
      method _get_backgroundColor : string
      method _get_backgroundImage : string
      method _get_backgroundPosition : string
      method _get_backgroundRepeat : string
      method _get_border : string
      method _get_borderBottom : string
      method _get_borderBottomColor : string
      method _get_borderBottomStyle : string
      method _get_borderBottomWidth : string
      method _get_borderCollapse : string
      method _get_borderColor : string
      method _get_borderLeft : string
      method _get_borderLeftColor : string
      method _get_borderLeftStyle : string
      method _get_borderLeftWidth : string
      method _get_borderRight : string
      method _get_borderRightColor : string
      method _get_borderRightStyle : string
      method _get_borderRightWidth : string
      method _get_borderSpacing : string
      method _get_borderStyle : string
      method _get_borderTop : string
      method _get_borderTopColor : string
      method _get_borderTopStyle : string
      method _get_borderTopWidth : string
      method _get_borderWidth : string
      method _get_bottom : string
      method _get_captionSide : string
      method _get_clear : string
      method _get_clip : string
      method _get_color : string
      method _get_content : string
      method _get_cssFloat : string
      method _get_cssText : string
      method _get_cursor : string
      method _get_direction : string
      method _get_display : string
      method _get_emptyCells : string
      method _get_font : string
      method _get_fontFamily : string
      method _get_fontSize : string
      method _get_fontSizeAdjust : string
      method _get_fontStretch : string
      method _get_fontStyle : string
      method _get_fontVariant : string
      method _get_fontWeight : string
      method _get_height : string
      method _get_left : string
      method _get_letterSpacing : string
      method _get_lineHeight : string
      method _get_listStyle : string
      method _get_listStyleImage : string
      method _get_listStylePosition : string
      method _get_listStyleType : string
      method _get_marginBottom : string
      method _get_marginLeft : string
      method _get_marginRight : string
      method _get_marginTop : string
      method _get_maxHeight : string
      method _get_maxWidth : string
      method _get_minHeight : string
      method _get_minWidth : string
      method _get_opacity : float
      method _get_orphans : string
      method _get_outline : string
      method _get_outlineColor : string
      method _get_outlineOffset : string
      method _get_outlineStyle : string
      method _get_outlineWidth : string
      method _get_overflow : string
      method _get_overflowX : string
      method _get_overflowY : string
      method _get_padding : string
      method _get_paddingBottom : string
      method _get_paddingLeft : string
      method _get_paddingRight : string
      method _get_paddingTop : string
      method _get_position : string
      method _get_right : string
      method _get_textAlign : string
      method _get_textDecoration : string
      method _get_textIndent : string
      method _get_textTransform : string
      method _get_top : string
      method _get_unicodeBidi : string
      method _get_verticalAlign : string
      method _get_visibility : string
      method _get_whitespace : string
      method _get_widows : string
      method _get_width : string
      method _get_wordspacing : string
      method _get_zIndex : string
      method _get_zIndex_ie_ : int
      method _set_background : string -> unit
      method _set_backgroundColor : string -> unit
      method _set_backgroundImage : string -> unit
      method _set_backgroundPosition : string -> unit
      method _set_backgroundRepeat : string -> unit
      method _set_border : string -> unit
      method _set_borderBottom : string -> unit
      method _set_borderBottomColor : string -> unit
      method _set_borderBottomStyle : string -> unit
      method _set_borderBottomWidth : string -> unit
      method _set_borderCollapse : string -> unit
      method _set_borderColor : string -> unit
      method _set_borderLeft : string -> unit
      method _set_borderLeftColor : string -> unit
      method _set_borderLeftStyle : string -> unit
      method _set_borderLeftWidth : string -> unit
      method _set_borderRight : string -> unit
      method _set_borderRightColor : string -> unit
      method _set_borderRightStyle : string -> unit
      method _set_borderRightWidth : string -> unit
      method _set_borderSpacing : string -> unit
      method _set_borderStyle : string -> unit
      method _set_borderTop : string -> unit
      method _set_borderTopColor : string -> unit
      method _set_borderTopStyle : string -> unit
      method _set_borderTopWidth : string -> unit
      method _set_borderWidth : string -> unit
      method _set_bottom : string -> unit
      method _set_captionSide : string -> unit
      method _set_clear : string -> unit
      method _set_clip : string -> unit
      method _set_color : string -> unit
      method _set_content : string -> unit
      method _set_cssFloat : string -> unit
      method _set_cursor : string -> unit
      method _set_direction : string -> unit
      method _set_display : string -> unit
      method _set_emptyCells : string -> unit
      method _set_font : string -> unit
      method _set_fontFamily : string -> unit
      method _set_fontSize : string -> unit
      method _set_fontSizeAdjust : string -> unit
      method _set_fontStretch : string -> unit
      method _set_fontStyle : string -> unit
      method _set_fontVariant : string -> unit
      method _set_fontWeight : string -> unit
      method _set_height : string -> unit
      method _set_left : string -> unit
      method _set_letterSpacing : string -> unit
      method _set_lineHeight : string -> unit
      method _set_listStyle : string -> unit
      method _set_listStyleImage : string -> unit
      method _set_listStylePosition : string -> unit
      method _set_listStyleType : string -> unit
      method _set_marginBottom : string -> unit
      method _set_marginLeft : string -> unit
      method _set_marginRight : string -> unit
      method _set_marginTop : string -> unit
      method _set_maxHeight : string -> unit
      method _set_maxWidth : string -> unit
      method _set_minHeight : string -> unit
      method _set_minWidth : string -> unit
      method _set_opacity : float -> unit
      method _set_orphans : string -> unit
      method _set_outline : string -> unit
      method _set_outlineColor : string -> unit
      method _set_outlineOffset : string -> unit
      method _set_outlineStyle : string -> unit
      method _set_outlineWidth : string -> unit
      method _set_overflow : string -> unit
      method _set_overflowX : string -> unit
      method _set_overflowY : string -> unit
      method _set_padding : string -> unit
      method _set_paddingBottom : string -> unit
      method _set_paddingLeft : string -> unit
      method _set_paddingRight : string -> unit
      method _set_paddingTop : string -> unit
      method _set_position : string -> unit
      method _set_right : string -> unit
      method _set_textAlign : string -> unit
      method _set_textDecoration : string -> unit
      method _set_textIndent : string -> unit
      method _set_textTransform : string -> unit
      method _set_top : string -> unit
      method _set_unicodeBidi : string -> unit
      method _set_verticalAlign : string -> unit
      method _set_visibility : string -> unit
      method _set_whitespace : string -> unit
      method _set_widows : string -> unit
      method _set_width : string -> unit
      method _set_wordspacing : string -> unit
      method _set_zIndex : string -> unit
      method _set_zIndex_ie_ : int -> unit
    end
  class type element =
    object
      method _get_accessKey : string
      method _get_childNodes : < .. > array
      method _get_className : string
      method _get_disabled : bool
      method _get_firstChild : < .. >
      method _get_id : string
      method _get_innerHTML : string
      method _get_lastChild : < .. >
      method _get_nextSibling : < .. >
      method _get_nodeName : string
      method _get_nodeType : int
      method _get_nodeValue : string
      method _get_offsetHeight : int
      method _get_offsetLeft : int
      method _get_offsetTop : int
      method _get_offsetWidth : int
      method _get_parentNode : < .. >
      method _get_previousSibling : < .. >
      method _get_scrollHeight : int
      method _get_scrollLeft : int
      method _get_scrollTop : int
      method _get_scrollWidth : int
      method _get_style : Dom.style
      method _get_tabIndex : int
      method _get_tagName : string
      method _get_title : string
      method _set_accessKey : string -> unit
      method _set_className : string -> unit
      method _set_disabled : bool -> unit
      method _set_id : string -> unit
      method _set_innerHTML : string -> unit
      method _set_nodeValue : string -> unit
      method _set_onblur : (Dom.event -> bool) -> unit
      method _set_onclick : (Dom.mouseEvent -> bool) -> unit
      method _set_oncontextmenu : (Dom.mouseEvent -> bool) -> unit
      method _set_ondblclick : (Dom.mouseEvent -> bool) -> unit
      method _set_onfocus : (Dom.event -> bool) -> unit
      method _set_onkeydown : (Dom.keyEvent -> bool) -> unit
      method _set_onkeypress : (Dom.keyEvent -> bool) -> unit
      method _set_onkeyup : (Dom.keyEvent -> bool) -> unit
      method _set_onmousedown : (Dom.mouseEvent -> bool) -> unit
      method _set_onmousemove : (Dom.mouseEvent -> bool) -> unit
      method _set_onmouseout : (Dom.mouseEvent -> bool) -> unit
      method _set_onmouseover : (Dom.mouseEvent -> bool) -> unit
      method _set_onmouseup : (Dom.mouseEvent -> bool) -> unit
      method _set_onresize : (Dom.event -> bool) -> unit
      method _set_tabIndex : int -> unit
      method _set_title : string -> unit
      method addEventListener : string -> (Dom.event -> unit) -> bool -> unit
      method addEventListener_keyEvent_ :
        string -> (Dom.keyEvent -> unit) -> bool -> unit
      method addEventListener_mouseEvent_ :
        string -> (Dom.mouseEvent -> unit) -> bool -> unit
      method appendChild : < .. > -> < .. >
      method blur : unit
      method click : unit
      method dispatchEvent : #Dom.event -> unit
      method focus : unit
      method getAttribute : string -> string
      method getElementsByTagName : string -> 'a
      method insertBefore : < .. > -> < .. > -> < .. >
      method removeAttribute : string -> unit
      method removeChild : < .. > -> < .. >
      method removeEventListener :
        string -> (Dom.event -> unit) -> bool -> unit
      method removeEventListener_keyEvent_ :
        string -> (Dom.keyEvent -> unit) -> bool -> unit
      method removeEventListener_mouseEvent_ :
        string -> (Dom.mouseEvent -> unit) -> bool -> unit
      method replaceChild : < .. > -> < .. > -> < .. >
      method setAttribute : string -> string -> unit
    end
  class type anchor =
    object
      method _get_accessKey : string
      method _get_charset : string
      method _get_childNodes : < .. > array
      method _get_className : string
      method _get_coords : string
      method _get_disabled : bool
      method _get_firstChild : < .. >
      method _get_hash : string
      method _get_host : string
      method _get_hostname : string
      method _get_href : string
      method _get_hreflang : string
      method _get_id : string
      method _get_innerHTML : string
      method _get_lastChild : < .. >
      method _get_name : string
      method _get_nextSibling : < .. >
      method _get_nodeName : string
      method _get_nodeType : int
      method _get_nodeValue : string
      method _get_offsetHeight : int
      method _get_offsetLeft : int
      method _get_offsetTop : int
      method _get_offsetWidth : int
      method _get_parentNode : < .. >
      method _get_pathname : string
      method _get_port : string
      method _get_previousSibling : < .. >
      method _get_protocol : string
      method _get_rel : string
      method _get_rev : string
      method _get_scrollHeight : int
      method _get_scrollLeft : int
      method _get_scrollTop : int
      method _get_scrollWidth : int
      method _get_search : string
      method _get_shape : string
      method _get_style : style
      method _get_tabIndex : int
      method _get_tagName : string
      method _get_target : string
      method _get_title : string
      method _get_type : string
      method _set_accessKey : string -> unit
      method _set_charset : string -> unit
      method _set_className : string -> unit
      method _set_coords : string -> unit
      method _set_disabled : bool -> unit
      method _set_hash : string -> unit
      method _set_host : string -> unit
      method _set_hostname : string -> unit
      method _set_href : string -> unit
      method _set_hreflang : string -> unit
      method _set_id : string -> unit
      method _set_innerHTML : string -> unit
      method _set_name : string -> unit
      method _set_nodeValue : string -> unit
      method _set_onblur : (event -> bool) -> unit
      method _set_onclick : (mouseEvent -> bool) -> unit
      method _set_oncontextmenu : (mouseEvent -> bool) -> unit
      method _set_ondblclick : (mouseEvent -> bool) -> unit
      method _set_onfocus : (event -> bool) -> unit
      method _set_onkeydown : (keyEvent -> bool) -> unit
      method _set_onkeypress : (keyEvent -> bool) -> unit
      method _set_onkeyup : (keyEvent -> bool) -> unit
      method _set_onmousedown : (mouseEvent -> bool) -> unit
      method _set_onmousemove : (mouseEvent -> bool) -> unit
      method _set_onmouseout : (mouseEvent -> bool) -> unit
      method _set_onmouseover : (mouseEvent -> bool) -> unit
      method _set_onmouseup : (mouseEvent -> bool) -> unit
      method _set_onresize : (event -> bool) -> unit
      method _set_pathname : string -> unit
      method _set_port : string -> unit
      method _set_protocol : string -> unit
      method _set_rel : string -> unit
      method _set_rev : string -> unit
      method _set_search : string -> unit
      method _set_shape : string -> unit
      method _set_tabIndex : int -> unit
      method _set_target : string -> unit
      method _set_title : string -> unit
      method _set_type : string -> unit
      method addEventListener : string -> (event -> unit) -> bool -> unit
      method addEventListener_keyEvent_ :
        string -> (keyEvent -> unit) -> bool -> unit
      method addEventListener_mouseEvent_ :
        string -> (mouseEvent -> unit) -> bool -> unit
      method appendChild : < .. > -> < .. >
      method blur : unit
      method click : unit
      method dispatchEvent : #event -> unit
      method focus : unit
      method getAttribute : string -> string
      method getElementsByTagName : string -> 'a
      method insertBefore : < .. > -> < .. > -> < .. >
      method removeAttribute : string -> unit
      method removeChild : < .. > -> < .. >
      method removeEventListener : string -> (event -> unit) -> bool -> unit
      method removeEventListener_keyEvent_ :
        string -> (keyEvent -> unit) -> bool -> unit
      method removeEventListener_mouseEvent_ :
        string -> (mouseEvent -> unit) -> bool -> unit
      method replaceChild : < .. > -> < .. > -> < .. >
      method setAttribute : string -> string -> unit
    end
  class type characterData =
    object
      method _get_childNodes : < .. > array
      method _get_data : string
      method _get_firstChild : < .. >
      method _get_lastChild : < .. >
      method _get_nextSibling : < .. >
      method _get_nodeName : string
      method _get_nodeType : int
      method _get_nodeValue : string
      method _get_parentNode : < .. >
      method _get_previousSibling : < .. >
      method _set_data : string -> unit
      method _set_nodeValue : string -> unit
      method appendChild : < .. > -> < .. >
      method insertBefore : < .. > -> < .. > -> < .. >
      method removeChild : < .. > -> < .. >
      method replaceChild : < .. > -> < .. > -> < .. >
    end
  class type text =
    object
      method _get_childNodes : < .. > array
      method _get_data : string
      method _get_firstChild : < .. >
      method _get_lastChild : < .. >
      method _get_nextSibling : < .. >
      method _get_nodeName : string
      method _get_nodeType : int
      method _get_nodeValue : string
      method _get_parentNode : < .. >
      method _get_previousSibling : < .. >
      method _set_data : string -> unit
      method _set_nodeValue : string -> unit
      method appendChild : < .. > -> < .. >
      method insertBefore : < .. > -> < .. > -> < .. >
      method removeChild : < .. > -> < .. >
      method replaceChild : < .. > -> < .. > -> < .. >
    end
  class type location =
    object
      method _get_hash : string
      method _get_host : string
      method _get_hostname : string
      method _get_href : string
      method _get_pathname : string
      method _get_protocol : string
      method _get_search : string
      method _set_hash : string -> unit
      method _set_host : string -> unit
      method _set_hostname : string -> unit
      method _set_href : string -> unit
      method _set_pathname : string -> unit
      method _set_protocol : string -> unit
      method _set_search : string -> unit
      method reload : bool -> unit
      method replace : string -> unit
    end
  class type window =
    object
      method _get_location : Dom.location
      method _set_onbeforeunload : (unit -> string) -> unit
      method _set_onload : (unit -> unit) -> unit
      method alert : string -> unit
      method clearInterval : Dom.interval_id -> unit
      method clearTimeout : Dom.timeout_id -> unit
      method confirm : string -> bool
      method setInterval : (unit -> unit) -> float -> Dom.interval_id
      method setTimeout : (unit -> unit) -> float -> Dom.timeout_id
    end
  class type body =
    object
      method _get_accessKey : string
      method _get_childNodes : < .. > array
      method _get_className : string
      method _get_disabled : bool
      method _get_firstChild : < .. >
      method _get_id : string
      method _get_innerHTML : string
      method _get_lastChild : < .. >
      method _get_nextSibling : < .. >
      method _get_nodeName : string
      method _get_nodeType : int
      method _get_nodeValue : string
      method _get_offsetHeight : int
      method _get_offsetLeft : int
      method _get_offsetTop : int
      method _get_offsetWidth : int
      method _get_parentNode : < .. >
      method _get_previousSibling : < .. >
      method _get_scrollHeight : int
      method _get_scrollLeft : int
      method _get_scrollTop : int
      method _get_scrollWidth : int
      method _get_style : style
      method _get_tabIndex : int
      method _get_tagName : string
      method _get_title : string
      method _set_accessKey : string -> unit
      method _set_className : string -> unit
      method _set_disabled : bool -> unit
      method _set_id : string -> unit
      method _set_innerHTML : string -> unit
      method _set_nodeValue : string -> unit
      method _set_onblur : (event -> bool) -> unit
      method _set_onclick : (mouseEvent -> bool) -> unit
      method _set_oncontextmenu : (mouseEvent -> bool) -> unit
      method _set_ondblclick : (mouseEvent -> bool) -> unit
      method _set_onfocus : (event -> bool) -> unit
      method _set_onkeydown : (keyEvent -> bool) -> unit
      method _set_onkeypress : (keyEvent -> bool) -> unit
      method _set_onkeyup : (keyEvent -> bool) -> unit
      method _set_onmousedown : (mouseEvent -> bool) -> unit
      method _set_onmousemove : (mouseEvent -> bool) -> unit
      method _set_onmouseout : (mouseEvent -> bool) -> unit
      method _set_onmouseover : (mouseEvent -> bool) -> unit
      method _set_onmouseup : (mouseEvent -> bool) -> unit
      method _set_onresize : (event -> bool) -> unit
      method _set_tabIndex : int -> unit
      method _set_title : string -> unit
      method addEventListener : string -> (event -> unit) -> bool -> unit
      method addEventListener_keyEvent_ :
        string -> (keyEvent -> unit) -> bool -> unit
      method addEventListener_mouseEvent_ :
        string -> (mouseEvent -> unit) -> bool -> unit
      method appendChild : < .. > -> < .. >
      method blur : unit
      method click : unit
      method dispatchEvent : #event -> unit
      method focus : unit
      method getAttribute : string -> string
      method getElementsByTagName : string -> 'a
      method insertBefore : < .. > -> < .. > -> < .. >
      method removeAttribute : string -> unit
      method removeChild : < .. > -> < .. >
      method removeEventListener : string -> (event -> unit) -> bool -> unit
      method removeEventListener_keyEvent_ :
        string -> (keyEvent -> unit) -> bool -> unit
      method removeEventListener_mouseEvent_ :
        string -> (mouseEvent -> unit) -> bool -> unit
      method replaceChild : < .. > -> < .. > -> < .. >
      method setAttribute : string -> string -> unit
    end
  class type cssRule =
    object
      method _get_selectorText : string
      method _get_style : Dom.style
    end
  class type styleSheet =
    object
      method _get_cssRules : Dom.cssRule array
      method _get_href : string
    end
  class type document =
    object
      method _get_accessKey : string
      method _get_body : Dom.body
      method _get_childNodes : < .. > array
      method _get_className : string
      method _get_cookie : string
      method _get_disabled : bool
      method _get_firstChild : < .. >
      method _get_id : string
      method _get_innerHTML : string
      method _get_lastChild : < .. >
      method _get_nextSibling : < .. >
      method _get_nodeName : string
      method _get_nodeType : int
      method _get_nodeValue : string
      method _get_offsetHeight : int
      method _get_offsetLeft : int
      method _get_offsetTop : int
      method _get_offsetWidth : int
      method _get_parentNode : < .. >
      method _get_previousSibling : < .. >
      method _get_scrollHeight : int
      method _get_scrollLeft : int
      method _get_scrollTop : int
      method _get_scrollWidth : int
      method _get_style : style
      method _get_styleSheets : Dom.styleSheet array
      method _get_tabIndex : int
      method _get_tagName : string
      method _get_title : string
      method _set_accessKey : string -> unit
      method _set_className : string -> unit
      method _set_cookie : string -> unit
      method _set_disabled : bool -> unit
      method _set_id : string -> unit
      method _set_innerHTML : string -> unit
      method _set_nodeValue : string -> unit
      method _set_onblur : (event -> bool) -> unit
      method _set_onclick : (mouseEvent -> bool) -> unit
      method _set_oncontextmenu : (mouseEvent -> bool) -> unit
      method _set_ondblclick : (mouseEvent -> bool) -> unit
      method _set_onfocus : (event -> bool) -> unit
      method _set_onkeydown : (keyEvent -> bool) -> unit
      method _set_onkeypress : (keyEvent -> bool) -> unit
      method _set_onkeyup : (keyEvent -> bool) -> unit
      method _set_onmousedown : (mouseEvent -> bool) -> unit
      method _set_onmousemove : (mouseEvent -> bool) -> unit
      method _set_onmouseout : (mouseEvent -> bool) -> unit
      method _set_onmouseover : (mouseEvent -> bool) -> unit
      method _set_onmouseup : (mouseEvent -> bool) -> unit
      method _set_onresize : (event -> bool) -> unit
      method _set_tabIndex : int -> unit
      method _set_title : string -> unit
      method addEventListener : string -> (event -> unit) -> bool -> unit
      method addEventListener_keyEvent_ :
        string -> (keyEvent -> unit) -> bool -> unit
      method addEventListener_mouseEvent_ :
        string -> (mouseEvent -> unit) -> bool -> unit
      method appendChild : < .. > -> < .. >
      method blur : unit
      method click : unit
      method createDocumentFragment : Dom.documentFragment
      method createElement : string -> #Dom.element
      method createTextNode : string -> Dom.text
      method dispatchEvent : #event -> unit
      method focus : unit
      method getAttribute : string -> string
      method getElementById : string -> #Dom.element
      method getElementsByClassName : string -> #Dom.element array
      method getElementsByTagName : string -> 'a
      method insertBefore : < .. > -> < .. > -> < .. >
      method removeAttribute : string -> unit
      method removeChild : < .. > -> < .. >
      method removeEventListener : string -> (event -> unit) -> bool -> unit
      method removeEventListener_keyEvent_ :
        string -> (keyEvent -> unit) -> bool -> unit
      method removeEventListener_mouseEvent_ :
        string -> (mouseEvent -> unit) -> bool -> unit
      method replaceChild : < .. > -> < .. > -> < .. >
      method setAttribute : string -> string -> unit
    end
  class type form =
    object
      method _get_accessKey : string
      method _get_childNodes : < .. > array
      method _get_className : string
      method _get_disabled : bool
      method _get_elements : #Dom.element array
      method _get_firstChild : < .. >
      method _get_id : string
      method _get_innerHTML : string
      method _get_lastChild : < .. >
      method _get_nextSibling : < .. >
      method _get_nodeName : string
      method _get_nodeType : int
      method _get_nodeValue : string
      method _get_offsetHeight : int
      method _get_offsetLeft : int
      method _get_offsetTop : int
      method _get_offsetWidth : int
      method _get_parentNode : < .. >
      method _get_previousSibling : < .. >
      method _get_scrollHeight : int
      method _get_scrollLeft : int
      method _get_scrollTop : int
      method _get_scrollWidth : int
      method _get_style : style
      method _get_tabIndex : int
      method _get_tagName : string
      method _get_title : string
      method _set_accessKey : string -> unit
      method _set_className : string -> unit
      method _set_disabled : bool -> unit
      method _set_id : string -> unit
      method _set_innerHTML : string -> unit
      method _set_nodeValue : string -> unit
      method _set_onblur : (event -> bool) -> unit
      method _set_onclick : (mouseEvent -> bool) -> unit
      method _set_oncontextmenu : (mouseEvent -> bool) -> unit
      method _set_ondblclick : (mouseEvent -> bool) -> unit
      method _set_onfocus : (event -> bool) -> unit
      method _set_onkeydown : (keyEvent -> bool) -> unit
      method _set_onkeypress : (keyEvent -> bool) -> unit
      method _set_onkeyup : (keyEvent -> bool) -> unit
      method _set_onmousedown : (mouseEvent -> bool) -> unit
      method _set_onmousemove : (mouseEvent -> bool) -> unit
      method _set_onmouseout : (mouseEvent -> bool) -> unit
      method _set_onmouseover : (mouseEvent -> bool) -> unit
      method _set_onmouseup : (mouseEvent -> bool) -> unit
      method _set_onresize : (event -> bool) -> unit
      method _set_onsubmit : (unit -> bool) -> unit
      method _set_tabIndex : int -> unit
      method _set_title : string -> unit
      method addEventListener : string -> (event -> unit) -> bool -> unit
      method addEventListener_keyEvent_ :
        string -> (keyEvent -> unit) -> bool -> unit
      method addEventListener_mouseEvent_ :
        string -> (mouseEvent -> unit) -> bool -> unit
      method appendChild : < .. > -> < .. >
      method blur : unit
      method click : unit
      method dispatchEvent : #event -> unit
      method focus : unit
      method getAttribute : string -> string
      method getElementsByTagName : string -> 'a
      method insertBefore : < .. > -> < .. > -> < .. >
      method removeAttribute : string -> unit
      method removeChild : < .. > -> < .. >
      method removeEventListener : string -> (event -> unit) -> bool -> unit
      method removeEventListener_keyEvent_ :
        string -> (keyEvent -> unit) -> bool -> unit
      method removeEventListener_mouseEvent_ :
        string -> (mouseEvent -> unit) -> bool -> unit
      method replaceChild : < .. > -> < .. > -> < .. >
      method setAttribute : string -> string -> unit
    end
  class type button =
    object
      method _get_accessKey : string
      method _get_childNodes : < .. > array
      method _get_className : string
      method _get_disabled : bool
      method _get_firstChild : < .. >
      method _get_form : Dom.form
      method _get_id : string
      method _get_innerHTML : string
      method _get_lastChild : < .. >
      method _get_name : string
      method _get_nextSibling : < .. >
      method _get_nodeName : string
      method _get_nodeType : int
      method _get_nodeValue : string
      method _get_offsetHeight : int
      method _get_offsetLeft : int
      method _get_offsetTop : int
      method _get_offsetWidth : int
      method _get_parentNode : < .. >
      method _get_previousSibling : < .. >
      method _get_scrollHeight : int
      method _get_scrollLeft : int
      method _get_scrollTop : int
      method _get_scrollWidth : int
      method _get_style : style
      method _get_tabIndex : int
      method _get_tagName : string
      method _get_title : string
      method _get_type : string
      method _get_value : string
      method _set_accessKey : string -> unit
      method _set_className : string -> unit
      method _set_disabled : bool -> unit
      method _set_id : string -> unit
      method _set_innerHTML : string -> unit
      method _set_name : string -> unit
      method _set_nodeValue : string -> unit
      method _set_onblur : (event -> bool) -> unit
      method _set_onclick : (mouseEvent -> bool) -> unit
      method _set_oncontextmenu : (mouseEvent -> bool) -> unit
      method _set_ondblclick : (mouseEvent -> bool) -> unit
      method _set_onfocus : (event -> bool) -> unit
      method _set_onkeydown : (keyEvent -> bool) -> unit
      method _set_onkeypress : (keyEvent -> bool) -> unit
      method _set_onkeyup : (keyEvent -> bool) -> unit
      method _set_onmousedown : (mouseEvent -> bool) -> unit
      method _set_onmousemove : (mouseEvent -> bool) -> unit
      method _set_onmouseout : (mouseEvent -> bool) -> unit
      method _set_onmouseover : (mouseEvent -> bool) -> unit
      method _set_onmouseup : (mouseEvent -> bool) -> unit
      method _set_onresize : (event -> bool) -> unit
      method _set_tabIndex : int -> unit
      method _set_title : string -> unit
      method _set_value : string -> unit
      method addEventListener : string -> (event -> unit) -> bool -> unit
      method addEventListener_keyEvent_ :
        string -> (keyEvent -> unit) -> bool -> unit
      method addEventListener_mouseEvent_ :
        string -> (mouseEvent -> unit) -> bool -> unit
      method appendChild : < .. > -> < .. >
      method blur : unit
      method click : unit
      method dispatchEvent : #event -> unit
      method focus : unit
      method getAttribute : string -> string
      method getElementsByTagName : string -> 'a
      method insertBefore : < .. > -> < .. > -> < .. >
      method removeAttribute : string -> unit
      method removeChild : < .. > -> < .. >
      method removeEventListener : string -> (event -> unit) -> bool -> unit
      method removeEventListener_keyEvent_ :
        string -> (keyEvent -> unit) -> bool -> unit
      method removeEventListener_mouseEvent_ :
        string -> (mouseEvent -> unit) -> bool -> unit
      method replaceChild : < .. > -> < .. > -> < .. >
      method setAttribute : string -> string -> unit
    end
  class type input =
    object
      method _get_accept : string
      method _get_accessKey : string
      method _get_align : string
      method _get_alt : string
      method _get_checked : bool
      method _get_childNodes : < .. > array
      method _get_className : string
      method _get_defaultChecked : bool
      method _get_defaultValue : string
      method _get_disabled : bool
      method _get_firstChild : < .. >
      method _get_form : Dom.form
      method _get_id : string
      method _get_innerHTML : string
      method _get_lastChild : < .. >
      method _get_maxLength : int
      method _get_name : string
      method _get_nextSibling : < .. >
      method _get_nodeName : string
      method _get_nodeType : int
      method _get_nodeValue : string
      method _get_offsetHeight : int
      method _get_offsetLeft : int
      method _get_offsetTop : int
      method _get_offsetWidth : int
      method _get_parentNode : < .. >
      method _get_previousSibling : < .. >
      method _get_readOnly : bool
      method _get_scrollHeight : int
      method _get_scrollLeft : int
      method _get_scrollTop : int
      method _get_scrollWidth : int
      method _get_size : int
      method _get_src : string
      method _get_style : style
      method _get_tabIndex : int
      method _get_tagName : string
      method _get_title : string
      method _get_type : string
      method _get_useMap : string
      method _get_value : string
      method _set_accept : string -> unit
      method _set_accessKey : string -> unit
      method _set_align : string -> unit
      method _set_alt : string -> unit
      method _set_checked : bool -> unit
      method _set_className : string -> unit
      method _set_defaultChecked : bool -> unit
      method _set_defaultValue : string -> bool
      method _set_disabled : bool -> unit
      method _set_id : string -> unit
      method _set_innerHTML : string -> unit
      method _set_maxLength : int -> unit
      method _set_name : string -> unit
      method _set_nodeValue : string -> unit
      method _set_onblur : (event -> bool) -> unit
      method _set_onchange : (unit -> unit) -> unit
      method _set_onclick : (mouseEvent -> bool) -> unit
      method _set_oncontextmenu : (mouseEvent -> bool) -> unit
      method _set_ondblclick : (mouseEvent -> bool) -> unit
      method _set_onfocus : (event -> bool) -> unit
      method _set_onkeydown : (keyEvent -> bool) -> unit
      method _set_onkeypress : (keyEvent -> bool) -> unit
      method _set_onkeyup : (keyEvent -> bool) -> unit
      method _set_onmousedown : (mouseEvent -> bool) -> unit
      method _set_onmousemove : (mouseEvent -> bool) -> unit
      method _set_onmouseout : (mouseEvent -> bool) -> unit
      method _set_onmouseover : (mouseEvent -> bool) -> unit
      method _set_onmouseup : (mouseEvent -> bool) -> unit
      method _set_onresize : (event -> bool) -> unit
      method _set_readOnly : bool -> unit
      method _set_size : int -> unit
      method _set_src : string -> unit
      method _set_tabIndex : int -> unit
      method _set_title : string -> unit
      method _set_type : string -> unit
      method _set_useMap : string -> unit
      method _set_value : string -> unit
      method addEventListener : string -> (event -> unit) -> bool -> unit
      method addEventListener_keyEvent_ :
        string -> (keyEvent -> unit) -> bool -> unit
      method addEventListener_mouseEvent_ :
        string -> (mouseEvent -> unit) -> bool -> unit
      method appendChild : < .. > -> < .. >
      method blur : unit
      method click : unit
      method dispatchEvent : #event -> unit
      method focus : unit
      method getAttribute : string -> string
      method getElementsByTagName : string -> 'a
      method insertBefore : < .. > -> < .. > -> < .. >
      method removeAttribute : string -> unit
      method removeChild : < .. > -> < .. >
      method removeEventListener : string -> (event -> unit) -> bool -> unit
      method removeEventListener_keyEvent_ :
        string -> (keyEvent -> unit) -> bool -> unit
      method removeEventListener_mouseEvent_ :
        string -> (mouseEvent -> unit) -> bool -> unit
      method replaceChild : < .. > -> < .. > -> < .. >
      method select : unit
      method setAttribute : string -> string -> unit
    end
  class type option =
    object
      method _get_accessKey : string
      method _get_childNodes : < .. > array
      method _get_className : string
      method _get_defaultSelected : bool
      method _get_disabled : bool
      method _get_firstChild : < .. >
      method _get_form : Dom.form
      method _get_id : string
      method _get_index : int
      method _get_innerHTML : string
      method _get_label : string
      method _get_lastChild : < .. >
      method _get_nextSibling : < .. >
      method _get_nodeName : string
      method _get_nodeType : int
      method _get_nodeValue : string
      method _get_offsetHeight : int
      method _get_offsetLeft : int
      method _get_offsetTop : int
      method _get_offsetWidth : int
      method _get_parentNode : < .. >
      method _get_previousSibling : < .. >
      method _get_scrollHeight : int
      method _get_scrollLeft : int
      method _get_scrollTop : int
      method _get_scrollWidth : int
      method _get_selected : bool
      method _get_style : style
      method _get_tabIndex : int
      method _get_tagName : string
      method _get_text : string
      method _get_title : string
      method _get_value : string
      method _set_accessKey : string -> unit
      method _set_className : string -> unit
      method _set_defaultSelected : bool -> unit
      method _set_disabled : bool -> unit
      method _set_id : string -> unit
      method _set_innerHTML : string -> unit
      method _set_label : string -> unit
      method _set_nodeValue : string -> unit
      method _set_onblur : (event -> bool) -> unit
      method _set_onclick : (mouseEvent -> bool) -> unit
      method _set_oncontextmenu : (mouseEvent -> bool) -> unit
      method _set_ondblclick : (mouseEvent -> bool) -> unit
      method _set_onfocus : (event -> bool) -> unit
      method _set_onkeydown : (keyEvent -> bool) -> unit
      method _set_onkeypress : (keyEvent -> bool) -> unit
      method _set_onkeyup : (keyEvent -> bool) -> unit
      method _set_onmousedown : (mouseEvent -> bool) -> unit
      method _set_onmousemove : (mouseEvent -> bool) -> unit
      method _set_onmouseout : (mouseEvent -> bool) -> unit
      method _set_onmouseover : (mouseEvent -> bool) -> unit
      method _set_onmouseup : (mouseEvent -> bool) -> unit
      method _set_onresize : (event -> bool) -> unit
      method _set_selected : bool -> unit
      method _set_tabIndex : int -> unit
      method _set_title : string -> unit
      method _set_value : string -> unit
      method addEventListener : string -> (event -> unit) -> bool -> unit
      method addEventListener_keyEvent_ :
        string -> (keyEvent -> unit) -> bool -> unit
      method addEventListener_mouseEvent_ :
        string -> (mouseEvent -> unit) -> bool -> unit
      method appendChild : < .. > -> < .. >
      method blur : unit
      method click : unit
      method dispatchEvent : #event -> unit
      method focus : unit
      method getAttribute : string -> string
      method getElementsByTagName : string -> 'a
      method insertBefore : < .. > -> < .. > -> < .. >
      method removeAttribute : string -> unit
      method removeChild : < .. > -> < .. >
      method removeEventListener : string -> (event -> unit) -> bool -> unit
      method removeEventListener_keyEvent_ :
        string -> (keyEvent -> unit) -> bool -> unit
      method removeEventListener_mouseEvent_ :
        string -> (mouseEvent -> unit) -> bool -> unit
      method replaceChild : < .. > -> < .. > -> < .. >
      method setAttribute : string -> string -> unit
    end
  class type select =
    object
      method _get_accessKey : string
      method _get_childNodes : < .. > array
      method _get_className : string
      method _get_disabled : bool
      method _get_firstChild : < .. >
      method _get_form : Dom.form
      method _get_id : string
      method _get_innerHTML : string
      method _get_lastChild : < .. >
      method _get_length : int
      method _get_multiple : bool
      method _get_name : string
      method _get_nextSibling : < .. >
      method _get_nodeName : string
      method _get_nodeType : int
      method _get_nodeValue : string
      method _get_offsetHeight : int
      method _get_offsetLeft : int
      method _get_offsetTop : int
      method _get_offsetWidth : int
      method _get_options : Dom.option array
      method _get_parentNode : < .. >
      method _get_previousSibling : < .. >
      method _get_scrollHeight : int
      method _get_scrollLeft : int
      method _get_scrollTop : int
      method _get_scrollWidth : int
      method _get_selectedIndex : int
      method _get_size : int
      method _get_style : style
      method _get_tabIndex : int
      method _get_tagName : string
      method _get_title : string
      method _get_type : string
      method _get_value : string
      method _set_accessKey : string -> unit
      method _set_className : string -> unit
      method _set_disabled : bool -> unit
      method _set_id : string -> unit
      method _set_innerHTML : string -> unit
      method _set_multiple : bool -> unit
      method _set_name : string -> unit
      method _set_nodeValue : string -> unit
      method _set_onblur : (event -> bool) -> unit
      method _set_onchange : (unit -> unit) -> unit
      method _set_onclick : (mouseEvent -> bool) -> unit
      method _set_oncontextmenu : (mouseEvent -> bool) -> unit
      method _set_ondblclick : (mouseEvent -> bool) -> unit
      method _set_onfocus : (event -> bool) -> unit
      method _set_onkeydown : (keyEvent -> bool) -> unit
      method _set_onkeypress : (keyEvent -> bool) -> unit
      method _set_onkeyup : (keyEvent -> bool) -> unit
      method _set_onmousedown : (mouseEvent -> bool) -> unit
      method _set_onmousemove : (mouseEvent -> bool) -> unit
      method _set_onmouseout : (mouseEvent -> bool) -> unit
      method _set_onmouseover : (mouseEvent -> bool) -> unit
      method _set_onmouseup : (mouseEvent -> bool) -> unit
      method _set_onresize : (event -> bool) -> unit
      method _set_selectedIndex : int -> unit
      method _set_size : int -> unit
      method _set_tabIndex : int -> unit
      method _set_title : string -> unit
      method _set_value : string -> unit
      method add : Dom.option -> Dom.option -> unit
      method addEventListener : string -> (event -> unit) -> bool -> unit
      method addEventListener_keyEvent_ :
        string -> (keyEvent -> unit) -> bool -> unit
      method addEventListener_mouseEvent_ :
        string -> (mouseEvent -> unit) -> bool -> unit
      method add_ie_ : Dom.option -> int -> unit
      method appendChild : < .. > -> < .. >
      method blur : unit
      method click : unit
      method dispatchEvent : #event -> unit
      method focus : unit
      method getAttribute : string -> string
      method getElementsByTagName : string -> 'a
      method insertBefore : < .. > -> < .. > -> < .. >
      method remove : int -> unit
      method removeAttribute : string -> unit
      method removeChild : < .. > -> < .. >
      method removeEventListener : string -> (event -> unit) -> bool -> unit
      method removeEventListener_keyEvent_ :
        string -> (keyEvent -> unit) -> bool -> unit
      method removeEventListener_mouseEvent_ :
        string -> (mouseEvent -> unit) -> bool -> unit
      method replaceChild : < .. > -> < .. > -> < .. >
      method setAttribute : string -> string -> unit
    end
  class type span =
    object
      method _get_accessKey : string
      method _get_childNodes : < .. > array
      method _get_className : string
      method _get_disabled : bool
      method _get_firstChild : < .. >
      method _get_id : string
      method _get_innerHTML : string
      method _get_lastChild : < .. >
      method _get_nextSibling : < .. >
      method _get_nodeName : string
      method _get_nodeType : int
      method _get_nodeValue : string
      method _get_offsetHeight : int
      method _get_offsetLeft : int
      method _get_offsetTop : int
      method _get_offsetWidth : int
      method _get_parentNode : < .. >
      method _get_previousSibling : < .. >
      method _get_scrollHeight : int
      method _get_scrollLeft : int
      method _get_scrollTop : int
      method _get_scrollWidth : int
      method _get_style : style
      method _get_tabIndex : int
      method _get_tagName : string
      method _get_title : string
      method _set_accessKey : string -> unit
      method _set_className : string -> unit
      method _set_disabled : bool -> unit
      method _set_id : string -> unit
      method _set_innerHTML : string -> unit
      method _set_nodeValue : string -> unit
      method _set_onblur : (event -> bool) -> unit
      method _set_onclick : (mouseEvent -> bool) -> unit
      method _set_oncontextmenu : (mouseEvent -> bool) -> unit
      method _set_ondblclick : (mouseEvent -> bool) -> unit
      method _set_onfocus : (event -> bool) -> unit
      method _set_onkeydown : (keyEvent -> bool) -> unit
      method _set_onkeypress : (keyEvent -> bool) -> unit
      method _set_onkeyup : (keyEvent -> bool) -> unit
      method _set_onmousedown : (mouseEvent -> bool) -> unit
      method _set_onmousemove : (mouseEvent -> bool) -> unit
      method _set_onmouseout : (mouseEvent -> bool) -> unit
      method _set_onmouseover : (mouseEvent -> bool) -> unit
      method _set_onmouseup : (mouseEvent -> bool) -> unit
      method _set_onresize : (event -> bool) -> unit
      method _set_tabIndex : int -> unit
      method _set_title : string -> unit
      method addEventListener : string -> (event -> unit) -> bool -> unit
      method addEventListener_keyEvent_ :
        string -> (keyEvent -> unit) -> bool -> unit
      method addEventListener_mouseEvent_ :
        string -> (mouseEvent -> unit) -> bool -> unit
      method appendChild : < .. > -> < .. >
      method blur : unit
      method click : unit
      method dispatchEvent : #event -> unit
      method focus : unit
      method getAttribute : string -> string
      method getElementsByTagName : string -> 'a
      method insertBefore : < .. > -> < .. > -> < .. >
      method removeAttribute : string -> unit
      method removeChild : < .. > -> < .. >
      method removeEventListener : string -> (event -> unit) -> bool -> unit
      method removeEventListener_keyEvent_ :
        string -> (keyEvent -> unit) -> bool -> unit
      method removeEventListener_mouseEvent_ :
        string -> (mouseEvent -> unit) -> bool -> unit
      method replaceChild : < .. > -> < .. > -> < .. >
      method setAttribute : string -> string -> unit
    end
  class type image =
    object
      method _get_accessKey : string
      method _get_childNodes : < .. > array
      method _get_className : string
      method _get_disabled : bool
      method _get_firstChild : < .. >
      method _get_height : int
      method _get_id : string
      method _get_innerHTML : string
      method _get_lastChild : < .. >
      method _get_nextSibling : < .. >
      method _get_nodeName : string
      method _get_nodeType : int
      method _get_nodeValue : string
      method _get_offsetHeight : int
      method _get_offsetLeft : int
      method _get_offsetTop : int
      method _get_offsetWidth : int
      method _get_parentNode : < .. >
      method _get_previousSibling : < .. >
      method _get_scrollHeight : int
      method _get_scrollLeft : int
      method _get_scrollTop : int
      method _get_scrollWidth : int
      method _get_src : string
      method _get_style : style
      method _get_tabIndex : int
      method _get_tagName : string
      method _get_title : string
      method _get_width : int
      method _set_accessKey : string -> unit
      method _set_className : string -> unit
      method _set_disabled : bool -> unit
      method _set_height : int -> unit
      method _set_id : string -> unit
      method _set_innerHTML : string -> unit
      method _set_nodeValue : string -> unit
      method _set_onblur : (event -> bool) -> unit
      method _set_onclick : (mouseEvent -> bool) -> unit
      method _set_oncontextmenu : (mouseEvent -> bool) -> unit
      method _set_ondblclick : (mouseEvent -> bool) -> unit
      method _set_onfocus : (event -> bool) -> unit
      method _set_onkeydown : (keyEvent -> bool) -> unit
      method _set_onkeypress : (keyEvent -> bool) -> unit
      method _set_onkeyup : (keyEvent -> bool) -> unit
      method _set_onload : (unit -> unit) -> unit
      method _set_onmousedown : (mouseEvent -> bool) -> unit
      method _set_onmousemove : (mouseEvent -> bool) -> unit
      method _set_onmouseout : (mouseEvent -> bool) -> unit
      method _set_onmouseover : (mouseEvent -> bool) -> unit
      method _set_onmouseup : (mouseEvent -> bool) -> unit
      method _set_onresize : (event -> bool) -> unit
      method _set_src : string -> unit
      method _set_tabIndex : int -> unit
      method _set_title : string -> unit
      method _set_width : int -> unit
      method addEventListener : string -> (event -> unit) -> bool -> unit
      method addEventListener_keyEvent_ :
        string -> (keyEvent -> unit) -> bool -> unit
      method addEventListener_mouseEvent_ :
        string -> (mouseEvent -> unit) -> bool -> unit
      method appendChild : < .. > -> < .. >
      method blur : unit
      method click : unit
      method dispatchEvent : #event -> unit
      method focus : unit
      method getAttribute : string -> string
      method getElementsByTagName : string -> 'a
      method insertBefore : < .. > -> < .. > -> < .. >
      method removeAttribute : string -> unit
      method removeChild : < .. > -> < .. >
      method removeEventListener : string -> (event -> unit) -> bool -> unit
      method removeEventListener_keyEvent_ :
        string -> (keyEvent -> unit) -> bool -> unit
      method removeEventListener_mouseEvent_ :
        string -> (mouseEvent -> unit) -> bool -> unit
      method replaceChild : < .. > -> < .. > -> < .. >
      method setAttribute : string -> string -> unit
    end
  class type canvas =
    object
      method _get_accessKey : string
      method _get_childNodes : < .. > array
      method _get_className : string
      method _get_disabled : bool
      method _get_firstChild : < .. >
      method _get_height : int
      method _get_id : string
      method _get_innerHTML : string
      method _get_lastChild : < .. >
      method _get_nextSibling : < .. >
      method _get_nodeName : string
      method _get_nodeType : int
      method _get_nodeValue : string
      method _get_offsetHeight : int
      method _get_offsetLeft : int
      method _get_offsetTop : int
      method _get_offsetWidth : int
      method _get_parentNode : < .. >
      method _get_previousSibling : < .. >
      method _get_scrollHeight : int
      method _get_scrollLeft : int
      method _get_scrollTop : int
      method _get_scrollWidth : int
      method _get_style : style
      method _get_tabIndex : int
      method _get_tagName : string
      method _get_title : string
      method _get_width : int
      method _set_accessKey : string -> unit
      method _set_className : string -> unit
      method _set_disabled : bool -> unit
      method _set_height : int -> unit
      method _set_id : string -> unit
      method _set_innerHTML : string -> unit
      method _set_nodeValue : string -> unit
      method _set_onblur : (event -> bool) -> unit
      method _set_onclick : (mouseEvent -> bool) -> unit
      method _set_oncontextmenu : (mouseEvent -> bool) -> unit
      method _set_ondblclick : (mouseEvent -> bool) -> unit
      method _set_onfocus : (event -> bool) -> unit
      method _set_onkeydown : (keyEvent -> bool) -> unit
      method _set_onkeypress : (keyEvent -> bool) -> unit
      method _set_onkeyup : (keyEvent -> bool) -> unit
      method _set_onmousedown : (mouseEvent -> bool) -> unit
      method _set_onmousemove : (mouseEvent -> bool) -> unit
      method _set_onmouseout : (mouseEvent -> bool) -> unit
      method _set_onmouseover : (mouseEvent -> bool) -> unit
      method _set_onmouseup : (mouseEvent -> bool) -> unit
      method _set_onresize : (event -> bool) -> unit
      method _set_tabIndex : int -> unit
      method _set_title : string -> unit
      method _set_width : int -> unit
      method addEventListener : string -> (event -> unit) -> bool -> unit
      method addEventListener_keyEvent_ :
        string -> (keyEvent -> unit) -> bool -> unit
      method addEventListener_mouseEvent_ :
        string -> (mouseEvent -> unit) -> bool -> unit
      method appendChild : < .. > -> < .. >
      method blur : unit
      method click : unit
      method dispatchEvent : #event -> unit
      method focus : unit
      method getAttribute : string -> string
      method getContext : string -> Dom.canvasRenderingContext2D
      method getElementsByTagName : string -> 'a
      method insertBefore : < .. > -> < .. > -> < .. >
      method removeAttribute : string -> unit
      method removeChild : < .. > -> < .. >
      method removeEventListener : string -> (event -> unit) -> bool -> unit
      method removeEventListener_keyEvent_ :
        string -> (keyEvent -> unit) -> bool -> unit
      method removeEventListener_mouseEvent_ :
        string -> (mouseEvent -> unit) -> bool -> unit
      method replaceChild : < .. > -> < .. > -> < .. >
      method setAttribute : string -> string -> unit
      method toDataUrl : string
      method toDataUrl_args_ : string -> '-> string
    end
  and canvasRenderingContext2D =
    object
      method _get_canvas : Dom.canvas
      method _get_fillStyle : string
      method _get_fillStyle_canvasGradient_ : Dom.canvasGradient
      method _get_fillStyle_canvasPattern_ : Dom.canvasPattern
      method _get_font : string
      method _get_globalAlpha : float
      method _get_globalCompositeOperation : string
      method _get_lineCap : string
      method _get_lineWidth : float
      method _get_miterLimit : float
      method _get_shadowBlur : float
      method _get_shadowColor : string
      method _get_shadowOffsetX : float
      method _get_shadowOffsetY : float
      method _get_strokeStyle : string
      method _get_strokeStyle_canvasGradient_ : Dom.canvasGradient
      method _get_strokeStyle_canvasPattern_ : Dom.canvasPattern
      method _get_textAlign : string
      method _get_textBaseline : string
      method _set_fillStyle : string -> unit
      method _set_fillStyle_canvasGradient_ : Dom.canvasGradient -> unit
      method _set_fillStyle_canvasPattern_ : Dom.canvasPattern -> unit
      method _set_font : string -> unit
      method _set_globalAlpha : float -> unit
      method _set_globalCompositeOperation : string -> unit
      method _set_lineCap : string -> unit
      method _set_lineWidth : float -> unit
      method _set_miterLimit : float -> unit
      method _set_shadowBlur : float -> unit
      method _set_shadowColor : string -> unit
      method _set_shadowOffsetX : float -> unit
      method _set_shadowOffsetY : float -> unit
      method _set_strokeStyle : string -> unit
      method _set_strokeStyle_canvasGradient_ : Dom.canvasGradient -> unit
      method _set_strokeStyle_canvasPattern_ : Dom.canvasPattern -> unit
      method _set_textAlign : string -> unit
      method _set_textBaseline : string -> unit
      method arc : float -> float -> float -> float -> float -> bool -> unit
      method arcTo : float -> float -> float -> float -> float -> unit
      method beginPath : unit
      method bezierCurveTo :
        float -> float -> float -> float -> float -> float -> unit
      method clearRect : float -> float -> float -> float -> unit
      method clip : unit
      method closePath : unit
      method createImageData : float -> float -> Dom.imageData
      method createLinearGradient :
        float -> float -> float -> float -> Dom.canvasGradient
      method createPattern : Dom.image -> string -> Dom.canvasPattern
      method createPattern_canvas_ :
        Dom.canvas -> string -> Dom.canvasPattern
      method createRadialGradient :
        float ->
        float -> float -> float -> float -> float -> Dom.canvasGradient
      method drawImage : Dom.image -> float -> float -> unit
      method drawImage_5_ :
        Dom.image -> float -> float -> float -> float -> unit
      method drawImage_9_ :
        Dom.image ->
        float ->
        float -> float -> float -> float -> float -> float -> float -> unit
      method drawImage_canvas5_ :
        Dom.canvas -> float -> float -> float -> float -> unit
      method drawImage_canvas9_ :
        Dom.canvas ->
        float ->
        float -> float -> float -> float -> float -> float -> float -> unit
      method drawImage_canvas_ : Dom.canvas -> float -> float -> unit
      method fill : unit
      method fillRect : float -> float -> float -> float -> unit
      method fillText : string -> float -> float -> unit
      method fillText_maxWidth_ : string -> float -> float -> float -> unit
      method getImageData : float -> float -> float -> float -> Dom.imageData
      method isPointInPath : float -> float -> bool
      method lineTo : float -> float -> unit
      method measureText : string -> Dom.textMetrics
      method moveTo : float -> float -> unit
      method putImageData : Dom.imageData -> float -> float -> unit
      method putImageData_7_ :
        Dom.imageData ->
        float -> float -> float -> float -> float -> float -> unit
      method quadraticCurveTo : float -> float -> float -> float -> unit
      method rect : float -> float -> float -> float -> unit
      method restore : unit
      method rotate : float -> unit
      method save : unit
      method scale : float -> float -> unit
      method setTransform :
        float -> float -> float -> float -> float -> float -> unit
      method stroke : unit
      method strokeRect : float -> float -> float -> float -> unit
      method strokeText : string -> float -> float -> unit
      method strokeText_maxWidth_ : string -> float -> float -> float -> unit
      method transform :
        float -> float -> float -> float -> float -> float -> unit
      method translate : float -> float -> unit
    end
  and canvasGradient =
    object method addColorStop : float -> string -> unit end
  and canvasPattern = object  end
  and textMetrics = object method _get_width : float end
  and imageData =
    object
      method _get_data : int array
      method _get_height : int
      method _get_width : int
    end
  class type xMLHttpRequest =
    object
      method _get_readyState : int
      method _get_responseText : string
      method _get_status : int
      method _get_statusText : string
      method _set_onreadystatechange : (unit -> unit) -> unit
      method abort : unit
      method getAllResponseHeaders : string
      method getResponseHeader : string -> string
      method open_ : string -> string -> bool -> unit
      method send : string -> unit
      method setRequestHeader : string -> string -> unit
    end
  external new_XMLHttpRequest : unit -> Dom.xMLHttpRequest = "$new"
    "XMLHttpRequest"
  val window : Dom.window
  val document : Dom.document
end