sig
  type page = Xhtmltypes.body_content XHTML.M.elt list
  type options
  val send :
    ?options:options ->
    ?cookies:Eliom_services.cookie list ->
    ?charset:string ->
    ?code:int ->
    sp:Eliom_sessions.server_params ->
    page -> Eliom_services.result_to_send Lwt.t
  val register :
    ?options:options ->
    ?sp:Eliom_sessions.server_params ->
    service:('a, 'b, [< Eliom_services.internal_service_kind ],
             [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
            Eliom_services.service ->
    ?error_handler:(Eliom_sessions.server_params ->
                    (string * exn) list -> page Lwt.t) ->
    (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
  val register_for_session :
    ?options:options ->
    ?session_name:string ->
    ?secure:bool ->
    sp:Eliom_sessions.server_params ->
    service:('a, 'b, [< Eliom_services.internal_service_kind ],
             [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
            Eliom_services.service ->
    ?error_handler:(Eliom_sessions.server_params ->
                    (string * exn) list -> page Lwt.t) ->
    (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
  val register_new_service :
    ?options:options ->
    ?sp:Eliom_sessions.server_params ->
    ?https:bool ->
    path:Ocsigen_extensions.url_path ->
    get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
               Eliom_parameters.params_type ->
    ?error_handler:(Eliom_sessions.server_params ->
                    (string * exn) list -> page Lwt.t) ->
    (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
    ('a, unit,
     [> `Attached of
          [> `Internal of [> `Service ] * [> `Get ] ] Eliom_services.a_s ],
     'b, 'c, unit, [> `Registrable ])
    Eliom_services.service
  val register_new_service' :
    ?options:options ->
    ?sp:Eliom_sessions.server_params ->
    ?https:bool ->
    name:string ->
    get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
    ?error_handler:(Eliom_sessions.server_params ->
                    (string * exn) list -> page Lwt.t) ->
    (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
    ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
     [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
    Eliom_services.service
  val register_new_coservice :
    ?options:options ->
    ?sp:Eliom_sessions.server_params ->
    ?max_use:int ->
    ?timeout:float ->
    ?https:bool ->
    fallback:(unit, unit,
              [ `Attached of
                  [ `Internal of [ `Service ] * [ `Get ] ] Eliom_services.a_s ],
              [ `WithoutSuffix ], unit, unit,
              [< Eliom_services.registrable ])
             Eliom_services.service ->
    get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
    ?error_handler:(Eliom_sessions.server_params ->
                    (string * exn) list -> page Lwt.t) ->
    (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
    ('a, unit,
     [> `Attached of
          [> `Internal of [> `Coservice ] * [> `Get ] ] Eliom_services.a_s ],
     [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
    Eliom_services.service
  val register_new_coservice' :
    ?options:options ->
    ?sp:Eliom_sessions.server_params ->
    ?max_use:int ->
    ?timeout:float ->
    ?https:bool ->
    get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
    ?error_handler:(Eliom_sessions.server_params ->
                    (string * exn) list -> page Lwt.t) ->
    (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
    ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
     [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
    Eliom_services.service
  val register_new_coservice_for_session :
    ?options:options ->
    ?session_name:string ->
    ?secure:bool ->
    sp:Eliom_sessions.server_params ->
    ?max_use:int ->
    ?timeout:float ->
    ?https:bool ->
    fallback:(unit, unit,
              [ `Attached of
                  [ `Internal of [ `Service ] * [ `Get ] ] Eliom_services.a_s ],
              [ `WithoutSuffix ], unit, unit,
              [< Eliom_services.registrable ])
             Eliom_services.service ->
    get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
    ?error_handler:(Eliom_sessions.server_params ->
                    (string * exn) list -> page Lwt.t) ->
    (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
    ('a, unit,
     [> `Attached of
          [> `Internal of [> `Coservice ] * [> `Get ] ] Eliom_services.a_s ],
     [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
    Eliom_services.service
  val register_new_coservice_for_session' :
    ?options:options ->
    ?session_name:string ->
    ?secure:bool ->
    sp:Eliom_sessions.server_params ->
    ?max_use:int ->
    ?timeout:float ->
    ?https:bool ->
    get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
    ?error_handler:(Eliom_sessions.server_params ->
                    (string * exn) list -> page Lwt.t) ->
    (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
    ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
     [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
    Eliom_services.service
  val register_new_post_service :
    ?options:options ->
    ?sp:Eliom_sessions.server_params ->
    ?https:bool ->
    fallback:('a, unit,
              [ `Attached of
                  [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                  Eliom_services.a_s ],
              [< Eliom_services.suff ] as 'b, 'c, unit, [< `Registrable ])
             Eliom_services.service ->
    post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
    ?error_handler:(Eliom_sessions.server_params ->
                    (string * exn) list -> page Lwt.t) ->
    (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
    ('a, 'd,
     [> `Attached of
          [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
          Eliom_services.a_s ],
     'b, 'c, 'e, [> `Registrable ])
    Eliom_services.service
  val register_new_post_service' :
    ?options:options ->
    ?sp:Eliom_sessions.server_params ->
    ?keep_get_na_params:bool ->
    ?https:bool ->
    name:string ->
    post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
    ?error_handler:(Eliom_sessions.server_params ->
                    (string * exn) list -> page Lwt.t) ->
    (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
    (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
     [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
    Eliom_services.service
  val register_new_post_coservice :
    ?options:options ->
    ?sp:Eliom_sessions.server_params ->
    ?max_use:int ->
    ?timeout:float ->
    ?https:bool ->
    fallback:('a, unit,
              [ `Attached of
                  [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                  Eliom_services.a_s ],
              [< Eliom_services.suff ] as 'b, 'c, unit, [< `Registrable ])
             Eliom_services.service ->
    post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
    ?error_handler:(Eliom_sessions.server_params ->
                    (string * exn) list -> page Lwt.t) ->
    (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
    ('a, 'd,
     [> `Attached of
          [> `Internal of [> `Coservice ] * [> `Post ] ] Eliom_services.a_s ],
     'b, 'c, 'e, [> `Registrable ])
    Eliom_services.service
  val register_new_post_coservice' :
    ?options:options ->
    ?sp:Eliom_sessions.server_params ->
    ?max_use:int ->
    ?timeout:float ->
    ?keep_get_na_params:bool ->
    ?https:bool ->
    post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
    ?error_handler:(Eliom_sessions.server_params ->
                    (string * exn) list -> page Lwt.t) ->
    (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
    (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
     [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
    Eliom_services.service
  val register_new_post_coservice_for_session :
    ?options:options ->
    ?session_name:string ->
    ?secure:bool ->
    sp:Eliom_sessions.server_params ->
    ?max_use:int ->
    ?timeout:float ->
    ?https:bool ->
    fallback:('a, unit,
              [ `Attached of
                  [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                  Eliom_services.a_s ],
              [< Eliom_services.suff ] as 'b, 'c, unit, [ `Registrable ])
             Eliom_services.service ->
    post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
    ?error_handler:(Eliom_sessions.server_params ->
                    (string * exn) list -> page Lwt.t) ->
    (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
    ('a, 'd,
     [> `Attached of
          [> `Internal of [> `Coservice ] * [> `Post ] ] Eliom_services.a_s ],
     'b, 'c, 'e, [> `Registrable ])
    Eliom_services.service
  val register_new_post_coservice_for_session' :
    ?options:options ->
    ?session_name:string ->
    ?secure:bool ->
    sp:Eliom_sessions.server_params ->
    ?max_use:int ->
    ?timeout:float ->
    ?keep_get_na_params:bool ->
    ?https:bool ->
    post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
    ?error_handler:(Eliom_sessions.server_params ->
                    (string * exn) list -> page Lwt.t) ->
    (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
    (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
     [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
    Eliom_services.service
  module Cookies :
    sig
      type page = page * Eliom_services.cookie list
      type options
      val send :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        sp:Eliom_sessions.server_params ->
        page -> Eliom_services.result_to_send Lwt.t
      val register :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        service:('a, 'b, [< Eliom_services.internal_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                Eliom_services.service ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
      val register_for_session :
        ?options:options ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        service:('a, 'b, [< Eliom_services.internal_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                Eliom_services.service ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
      val register_new_service :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        ?https:bool ->
        path:Ocsigen_extensions.url_path ->
        get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                   Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Service ] * [> `Get ] ] Eliom_services.a_s ],
         'b, 'c, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_service' :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        ?https:bool ->
        name:string ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [ `WithoutSuffix ], unit, unit,
                  [< Eliom_services.registrable ])
                 Eliom_services.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ]
              Eliom_services.a_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice' :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice_for_session :
        ?options:options ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [ `WithoutSuffix ], unit, unit,
                  [< Eliom_services.registrable ])
                 Eliom_services.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ]
              Eliom_services.a_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice_for_session' :
        ?options:options ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_post_service :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit,
                  [< `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_service' :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        name:string ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit,
                  [< `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice' :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice_for_session :
        ?options:options ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit, [ `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice_for_session' :
        ?options:options ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
    end
  val make_full_string_uri :
    ?https:bool ->
    service:('a, unit, [< Eliom_services.get_service_kind ],
             [< Eliom_services.suff ], 'b, unit,
             [< Eliom_services.registrable ])
            Eliom_services.service ->
    sp:Eliom_sessions.server_params ->
    ?hostname:string -> ?port:int -> ?fragment:string -> '-> string
  val make_full_uri :
    ?https:bool ->
    service:('a, unit, [< Eliom_services.get_service_kind ],
             [< Eliom_services.suff ], 'b, unit,
             [< Eliom_services.registrable ])
            Eliom_services.service ->
    sp:Eliom_sessions.server_params ->
    ?hostname:string -> ?port:int -> ?fragment:string -> '-> XHTML.M.uri
  val make_string_uri :
    ?https:bool ->
    service:('a, unit, [< Eliom_services.get_service_kind ],
             [< Eliom_services.suff ], 'b, unit,
             [< Eliom_services.registrable ])
            Eliom_services.service ->
    sp:Eliom_sessions.server_params ->
    ?hostname:string -> ?port:int -> ?fragment:string -> '-> string
  val make_uri :
    ?https:bool ->
    service:('a, unit, [< Eliom_services.get_service_kind ],
             [< Eliom_services.suff ], 'b, unit,
             [< Eliom_services.registrable ])
            Eliom_services.service ->
    sp:Eliom_sessions.server_params ->
    ?hostname:string -> ?port:int -> ?fragment:string -> '-> XHTML.M.uri
  val a :
    ?https:bool ->
    ?a:Xhtmltypes.a_attrib XHTML.M.attrib list ->
    service:('a, unit, [< Eliom_services.get_service_kind ],
             [< Eliom_services.suff ], 'b, 'c,
             [< Eliom_services.registrable ])
            Eliom_services.service ->
    sp:Eliom_sessions.server_params ->
    ?hostname:string ->
    ?port:int ->
    ?fragment:string ->
    Xhtmltypes.a_content XHTML.M.elt list ->
    '-> [> Xhtmltypes.a ] XHTML.M.elt
  val css_link :
    ?a:Xhtmltypes.link_attrib XHTML.M.attrib list ->
    uri:XHTML.M.uri -> unit -> [> Xhtmltypes.link ] XHTML.M.elt
  val js_script :
    ?a:Xhtmltypes.script_attrib XHTML.M.attrib list ->
    uri:XHTML.M.uri -> unit -> [> Xhtmltypes.script ] XHTML.M.elt
  val get_form :
    ?https:bool ->
    ?a:Xhtmltypes.form_attrib XHTML.M.attrib list ->
    service:('a, unit, [< Eliom_services.get_service_kind ],
             [< Eliom_services.suff ], 'b, 'c,
             [< Eliom_services.registrable ])
            Eliom_services.service ->
    sp:Eliom_sessions.server_params ->
    ?hostname:string ->
    ?port:int ->
    ?fragment:string ->
    ('-> Xhtmltypes.form_content XHTML.M.elt list) ->
    [> Xhtmltypes.form ] XHTML.M.elt
  val lwt_get_form :
    ?https:bool ->
    ?a:Xhtmltypes.form_attrib XHTML.M.attrib list ->
    service:('a, unit, [< Eliom_services.get_service_kind ],
             [< Eliom_services.suff ], 'b, 'c,
             [< Eliom_services.registrable ])
            Eliom_services.service ->
    sp:Eliom_sessions.server_params ->
    ?hostname:string ->
    ?port:int ->
    ?fragment:string ->
    ('-> Xhtmltypes.form_content XHTML.M.elt list Lwt.t) ->
    Xhtmltypes.form XHTML.M.elt Lwt.t
  val post_form :
    ?https:bool ->
    ?a:Xhtmltypes.form_attrib XHTML.M.attrib list ->
    service:('a, 'b, [< Eliom_services.post_service_kind ],
             [< Eliom_services.suff ], 'c, 'd,
             [< Eliom_services.registrable ])
            Eliom_services.service ->
    sp:Eliom_sessions.server_params ->
    ?hostname:string ->
    ?port:int ->
    ?fragment:string ->
    ?keep_get_na_params:bool ->
    ('-> Xhtmltypes.form_content XHTML.M.elt list) ->
    '-> [> Xhtmltypes.form ] XHTML.M.elt
  val lwt_post_form :
    ?https:bool ->
    ?a:Xhtmltypes.form_attrib XHTML.M.attrib list ->
    service:('a, 'b, [< Eliom_services.post_service_kind ],
             [< Eliom_services.suff ], 'c, 'd,
             [< Eliom_services.registrable ])
            Eliom_services.service ->
    sp:Eliom_sessions.server_params ->
    ?hostname:string ->
    ?port:int ->
    ?fragment:string ->
    ?keep_get_na_params:bool ->
    ('-> Xhtmltypes.form_content XHTML.M.elt list Lwt.t) ->
    '-> Xhtmltypes.form XHTML.M.elt Lwt.t
  type basic_input_type = [ `Hidden | `Password | `Submit | `Text ]
  val int_input :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    input_type:[< basic_input_type ] ->
    ?name:[< int Eliom_parameters.setoneradio ] Eliom_parameters.param_name ->
    ?value:int -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
  val int32_input :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    input_type:[< basic_input_type ] ->
    ?name:[< int32 Eliom_parameters.setoneradio ] Eliom_parameters.param_name ->
    ?value:int32 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
  val int64_input :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    input_type:[< basic_input_type ] ->
    ?name:[< int64 Eliom_parameters.setoneradio ] Eliom_parameters.param_name ->
    ?value:int64 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
  val float_input :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    input_type:[< basic_input_type ] ->
    ?name:[< float Eliom_parameters.setoneradio ] Eliom_parameters.param_name ->
    ?value:float -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
  val string_input :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    input_type:[< basic_input_type ] ->
    ?name:[< string Eliom_parameters.setoneradio ]
          Eliom_parameters.param_name ->
    ?value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
  val user_type_input :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    input_type:[< basic_input_type ] ->
    ?name:[< 'Eliom_parameters.setoneradio ] Eliom_parameters.param_name ->
    ?value:'-> ('-> string) -> [> Xhtmltypes.input ] XHTML.M.elt
  val raw_input :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    input_type:[< `Button | `Hidden | `Password | `Reset | `Submit | `Text ] ->
    ?name:string ->
    ?value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
  val file_input :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    name:[< Ocsigen_extensions.file_info Eliom_parameters.setoneradio ]
         Eliom_parameters.param_name ->
    unit -> [> Xhtmltypes.input ] XHTML.M.elt
  val image_input :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    name:[< Eliom_parameters.coordinates Eliom_parameters.oneradio ]
         Eliom_parameters.param_name ->
    ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
  val int_image_input :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    name:[< (int * Eliom_parameters.coordinates) Eliom_parameters.oneradio ]
         Eliom_parameters.param_name ->
    value:int ->
    ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
  val int32_image_input :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    name:[< (int32 * Eliom_parameters.coordinates) Eliom_parameters.oneradio ]
         Eliom_parameters.param_name ->
    value:int32 ->
    ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
  val int64_image_input :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    name:[< (int64 * Eliom_parameters.coordinates) Eliom_parameters.oneradio ]
         Eliom_parameters.param_name ->
    value:int64 ->
    ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
  val float_image_input :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    name:[< (float * Eliom_parameters.coordinates) Eliom_parameters.oneradio ]
         Eliom_parameters.param_name ->
    value:float ->
    ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
  val string_image_input :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    name:[< (string * Eliom_parameters.coordinates) Eliom_parameters.oneradio ]
         Eliom_parameters.param_name ->
    value:string ->
    ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
  val user_type_image_input :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    name:[< ('a * Eliom_parameters.coordinates) Eliom_parameters.oneradio ]
         Eliom_parameters.param_name ->
    value:'->
    ?src:XHTML.M.uri -> ('-> string) -> [> Xhtmltypes.input ] XHTML.M.elt
  val raw_image_input :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    name:string ->
    value:string ->
    ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
  val bool_checkbox :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    ?checked:bool ->
    name:[ `One of bool ] Eliom_parameters.param_name ->
    unit -> [> Xhtmltypes.input ] XHTML.M.elt
  val int_checkbox :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    ?checked:bool ->
    name:[ `Set of int ] Eliom_parameters.param_name ->
    value:int -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
  val int32_checkbox :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    ?checked:bool ->
    name:[ `Set of int32 ] Eliom_parameters.param_name ->
    value:int32 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
  val int64_checkbox :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    ?checked:bool ->
    name:[ `Set of int64 ] Eliom_parameters.param_name ->
    value:int64 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
  val float_checkbox :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    ?checked:bool ->
    name:[ `Set of float ] Eliom_parameters.param_name ->
    value:float -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
  val string_checkbox :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    ?checked:bool ->
    name:[ `Set of string ] Eliom_parameters.param_name ->
    value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
  val user_type_checkbox :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    ?checked:bool ->
    name:[ `Set of 'a ] Eliom_parameters.param_name ->
    value:'-> ('-> string) -> [> Xhtmltypes.input ] XHTML.M.elt
  val raw_checkbox :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    ?checked:bool ->
    name:string -> value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
  val string_radio :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    ?checked:bool ->
    name:[ `Radio of string ] Eliom_parameters.param_name ->
    value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
  val int_radio :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    ?checked:bool ->
    name:[ `Radio of int ] Eliom_parameters.param_name ->
    value:int -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
  val int32_radio :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    ?checked:bool ->
    name:[ `Radio of int32 ] Eliom_parameters.param_name ->
    value:int32 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
  val int64_radio :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    ?checked:bool ->
    name:[ `Radio of int64 ] Eliom_parameters.param_name ->
    value:int64 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
  val float_radio :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    ?checked:bool ->
    name:[ `Radio of float ] Eliom_parameters.param_name ->
    value:float -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
  val user_type_radio :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    ?checked:bool ->
    name:[ `Radio of 'a ] Eliom_parameters.param_name ->
    value:'-> ('-> string) -> [> Xhtmltypes.input ] XHTML.M.elt
  val raw_radio :
    ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
    ?checked:bool ->
    name:string -> value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
  type button_type = [ `Button | `Reset | `Submit ]
  val string_button :
    ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
    name:[< string Eliom_parameters.setone ] Eliom_parameters.param_name ->
    value:string ->
    Xhtmltypes.button_content XHTML.M.elt list ->
    [> Xhtmltypes.button ] XHTML.M.elt
  val int_button :
    ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
    name:[< int Eliom_parameters.setone ] Eliom_parameters.param_name ->
    value:int ->
    Xhtmltypes.button_content XHTML.M.elt list ->
    [> Xhtmltypes.button ] XHTML.M.elt
  val int32_button :
    ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
    name:[< int32 Eliom_parameters.setone ] Eliom_parameters.param_name ->
    value:int32 ->
    Xhtmltypes.button_content XHTML.M.elt list ->
    [> Xhtmltypes.button ] XHTML.M.elt
  val int64_button :
    ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
    name:[< int64 Eliom_parameters.setone ] Eliom_parameters.param_name ->
    value:int64 ->
    Xhtmltypes.button_content XHTML.M.elt list ->
    [> Xhtmltypes.button ] XHTML.M.elt
  val float_button :
    ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
    name:[< float Eliom_parameters.setone ] Eliom_parameters.param_name ->
    value:float ->
    Xhtmltypes.button_content XHTML.M.elt list ->
    [> Xhtmltypes.button ] XHTML.M.elt
  val user_type_button :
    ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
    name:[< 'Eliom_parameters.setone ] Eliom_parameters.param_name ->
    value:'->
    ('-> string) ->
    Xhtmltypes.button_content XHTML.M.elt list ->
    [> Xhtmltypes.button ] XHTML.M.elt
  val raw_button :
    ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
    button_type:[< button_type ] ->
    name:string ->
    value:string ->
    Xhtmltypes.button_content XHTML.M.elt list ->
    [> Xhtmltypes.button ] XHTML.M.elt
  val button :
    ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
    button_type:[< button_type ] ->
    Xhtmltypes.button_content XHTML.M.elt list ->
    [> Xhtmltypes.button ] XHTML.M.elt
  val textarea :
    ?a:Xhtmltypes.textarea_attrib XHTML.M.attrib list ->
    name:[< string Eliom_parameters.setoneradio ] Eliom_parameters.param_name ->
    ?value:Xhtmltypes.pcdata XHTML.M.elt ->
    rows:int -> cols:int -> unit -> [> Xhtmltypes.textarea ] XHTML.M.elt
  val raw_textarea :
    ?a:Xhtmltypes.textarea_attrib XHTML.M.attrib list ->
    name:string ->
    ?value:Xhtmltypes.pcdata XHTML.M.elt ->
    rows:int -> cols:int -> unit -> [> Xhtmltypes.textarea ] XHTML.M.elt
  type 'a soption =
      Xhtmltypes.option_attrib XHTML.M.attrib list * 'a *
      Xhtmltypes.pcdata XHTML.M.elt option * bool
  type 'a select_opt =
      Optgroup of
        [ `Class | `Disabled | `Id | `Title | `XML_lang ] XHTML.M.attrib list *
        string * 'a soption * 'a soption list
    | Option of 'a soption
  val int_select :
    ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
    name:[< `One of int ] Eliom_parameters.param_name ->
    int select_opt ->
    int select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
  val int32_select :
    ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
    name:[< `One of int32 ] Eliom_parameters.param_name ->
    int32 select_opt ->
    int32 select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
  val int64_select :
    ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
    name:[< `One of int64 ] Eliom_parameters.param_name ->
    int64 select_opt ->
    int64 select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
  val float_select :
    ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
    name:[< `One of float ] Eliom_parameters.param_name ->
    float select_opt ->
    float select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
  val string_select :
    ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
    name:[< `One of string ] Eliom_parameters.param_name ->
    string select_opt ->
    string select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
  val user_type_select :
    ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
    name:[< `One of 'a ] Eliom_parameters.param_name ->
    'a select_opt ->
    'a select_opt list ->
    ('-> string) -> [> Xhtmltypes.select ] XHTML.M.elt
  val raw_select :
    ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
    name:string ->
    string select_opt ->
    string select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
  val int_multiple_select :
    ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
    name:[< `Set of int ] Eliom_parameters.param_name ->
    int select_opt ->
    int select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
  val int32_multiple_select :
    ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
    name:[< `Set of int32 ] Eliom_parameters.param_name ->
    int32 select_opt ->
    int32 select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
  val int64_multiple_select :
    ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
    name:[< `Set of int64 ] Eliom_parameters.param_name ->
    int64 select_opt ->
    int64 select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
  val float_multiple_select :
    ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
    name:[< `Set of float ] Eliom_parameters.param_name ->
    float select_opt ->
    float select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
  val string_multiple_select :
    ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
    name:[< `Set of string ] Eliom_parameters.param_name ->
    string select_opt ->
    string select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
  val user_type_multiple_select :
    ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
    name:[< `Set of 'a ] Eliom_parameters.param_name ->
    'a select_opt ->
    'a select_opt list ->
    ('-> string) -> [> Xhtmltypes.select ] XHTML.M.elt
  val raw_multiple_select :
    ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
    name:string ->
    string select_opt ->
    string select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
end