sig
  type 'a client_value = 'Eliom_lib.client_value
  type ('a, 'b) server_function
  val server_function :
    ?scope:[< Eliom_common.scope ] ->
    ?options:unit ->
    ?charset:string ->
    ?code:int ->
    ?content_type:string ->
    ?headers:Http_headers.t ->
    ?secure_session:bool ->
    ?name:string ->
    ?csrf_safe:bool ->
    ?csrf_scope:[< Eliom_common.user_scope ] ->
    ?csrf_secure:bool ->
    ?max_use:int ->
    ?timeout:float ->
    ?https:bool ->
    ?error_handler:((string * exn) list -> 'Lwt.t) ->
    'Deriving_Json.t ->
    ('-> 'Lwt.t) -> ('a, 'b) Eliom_pervasives.server_function
  type hook = {
    mutable a :
      ''''d.
        ?scope:([< Eliom_common.scope ] as 'd) ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:([< Eliom_common.user_scope ] as 'c) ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        ?error_handler:((string * exn) list -> 'Lwt.t) ->
        'Deriving_Json.t ->
        ('-> 'Lwt.t) -> ('a, 'b) Eliom_pervasives.server_function;
  }
  val server_function_hook : Eliom_pervasives.hook
  val mk_serv_fun :
    ('a, 'b) Eliom_pervasives_base.server_function_service ->
    Eliom_wrap.unwrapper -> ('a, 'b) Eliom_pervasives.server_function
end