`class type mutationObserverInit = object ... end`
`class type mutationRecord = object ... end`
`class type mutationObserver = object ... end`
`val empty_mutation_observer_init : unit -> mutationObserverInit Js.t`
`val mutationObserver : ((mutationRecord Js.t Js.js_array Js.t -> mutationObserver Js.t -> unit) Js.callback -> mutationObserver Js.t) Js.constr`
`val is_supported : unit -> bool`
`val observe : node:Dom.node Js.t -> f:(mutationRecord Js.t Js.js_array Js.t -> mutationObserver Js.t -> unit) -> ?child_list:bool -> ?attributes:bool -> ?character_data:bool -> ?subtree:bool -> ?attribute_old_value:bool -> ?character_data_old_value:bool -> ?attribute_filter:Js.js_string Js.t list -> unit -> mutationObserver Js.t`

Helper to create a new observer and connect it to a node