# Module Form

    module Form: sig .. end

    class type formData = object .. end

    val formData : formData Js.t Js.constr

    val formData_form : (Dom_html.formElement Js.t -> formData Js.t) Js.constr

    type form_elt = [ `File of File.file Js.t | `String of Js.js_string Js.t ]

    type form_contents = [ `Fields of (string * form_elt) list Pervasives.ref
           | `FormData of formData Js.t ]

    val append : form_contents -> string * form_elt -> unit

    val post_form_contents : Dom_html.formElement Js.t -> form_contents

    val get_form_contents : Dom_html.formElement Js.t -> (string * string) list

    val empty_form_contents : unit -> form_contents

    val form_elements : ?get:bool -> Dom_html.formElement Js.t -> (string * form_elt) list