functor (Pages : REG_PARAM->
  sig
    type page = Pages.page
    type options = Pages.options
    type return = Pages.return
    type result = Pages.result
    val register :
      ?scope:[< Eliom_common.scope ] ->
      ?options:Pages.options ->
      ?charset:string ->
      ?code:int ->
      ?content_type:string ->
      ?headers:Http_headers.t ->
      ?secure_session:bool ->
      service:('a, 'b, [< Eliom_service.internal_service_kind ],
               [< Eliom_service.suff ], 'c, 'd, [ `Registrable ],
               Pages.return)
              Eliom_service.service ->
      ?error_handler:((string * exn) list -> Pages.page Lwt.t) ->
      ('-> '-> Pages.page Lwt.t) -> unit
    val register_service :
      ?scope:[< Eliom_common.scope ] ->
      ?options:Pages.options ->
      ?charset:string ->
      ?code:int ->
      ?content_type:string ->
      ?headers:Http_headers.t ->
      ?secure_session:bool ->
      ?https:bool ->
      ?priority:int ->
      path:Eliom_lib.Url.path ->
      get_params:('a, [< Eliom_service.suff ] as 'b, 'c)
                 Eliom_parameter.params_type ->
      ?error_handler:((string * exn) list -> Pages.page Lwt.t) ->
      ('-> unit -> Pages.page Lwt.t) ->
      ('a, unit,
       [> `Attached of
            ([> `Internal of [> `Service ] ], [> `Get ]) Eliom_service.a_s ],
       'b, 'c, unit, [< Eliom_service.registrable > `Registrable ],
       Pages.return)
      Eliom_service.service
    val register_coservice :
      ?scope:[< Eliom_common.scope ] ->
      ?options:Pages.options ->
      ?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 ->
      fallback:(unit, unit,
                [ `Attached of
                    ([ `Internal of [ `Service ] ], [ `Get ])
                    Eliom_service.a_s ],
                [ `WithoutSuffix ], unit, unit,
                [< Eliom_service.registrable ], Pages.return)
               Eliom_service.service ->
      get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
      ?error_handler:((string * exn) list -> Pages.page Lwt.t) ->
      ('-> unit -> Pages.page Lwt.t) ->
      ('a, unit,
       [> `Attached of
            ([> `Internal of [> `Coservice ] ], [> `Get ]) Eliom_service.a_s ],
       [ `WithoutSuffix ], 'b, unit,
       [< Eliom_service.registrable > `Registrable ], Pages.return)
      Eliom_service.service
    val register_coservice' :
      ?scope:[< Eliom_common.scope ] ->
      ?options:Pages.options ->
      ?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 ->
      get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
      ?error_handler:((string * exn) list -> Pages.page Lwt.t) ->
      ('-> unit -> Pages.page Lwt.t) ->
      ('a, unit, [> `Nonattached of [> `Get ] Eliom_service.na_s ],
       [ `WithoutSuffix ], 'b, unit,
       [< Eliom_service.registrable > `Registrable ], Pages.return)
      Eliom_service.service
    val register_post_service :
      ?scope:[< Eliom_common.scope ] ->
      ?options:Pages.options ->
      ?charset:string ->
      ?code:int ->
      ?content_type:string ->
      ?headers:Http_headers.t ->
      ?secure_session:bool ->
      ?https:bool ->
      ?priority:int ->
      fallback:('a, unit,
                [ `Attached of
                    ([ `Internal of [ `Coservice | `Service ] ], [ `Get ])
                    Eliom_service.a_s ],
                [< Eliom_service.suff ] as 'b, 'c, unit, [< `Registrable ],
                'd)
               Eliom_service.service ->
      post_params:('e, [ `WithoutSuffix ], 'f) Eliom_parameter.params_type ->
      ?error_handler:((string * exn) list -> Pages.page Lwt.t) ->
      ('-> '-> Pages.page Lwt.t) ->
      ('a, 'e,
       [> `Attached of
            ([> `Internal of [ `Coservice | `Service ] ], [> `Post ])
            Eliom_service.a_s ],
       'b, 'c, 'f, [< Eliom_service.registrable > `Registrable ],
       Pages.return)
      Eliom_service.service
    val register_post_coservice :
      ?scope:[< Eliom_common.scope ] ->
      ?options:Pages.options ->
      ?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 ->
      fallback:('a, unit,
                [ `Attached of
                    ([ `Internal of [< `Coservice | `Service ] ], [ `Get ])
                    Eliom_service.a_s ],
                [< Eliom_service.suff ] as 'b, 'c, unit, [< `Registrable ],
                Pages.return)
               Eliom_service.service ->
      post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameter.params_type ->
      ?error_handler:((string * exn) list -> Pages.page Lwt.t) ->
      ('-> '-> Pages.page Lwt.t) ->
      ('a, 'd,
       [> `Attached of
            ([> `Internal of [> `Coservice ] ], [> `Post ]) Eliom_service.a_s ],
       'b, 'c, 'e, [< Eliom_service.registrable > `Registrable ],
       Pages.return)
      Eliom_service.service
    val register_post_coservice' :
      ?scope:[< Eliom_common.scope ] ->
      ?options:Pages.options ->
      ?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 ->
      ?keep_get_na_params:bool ->
      ?https:bool ->
      post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
      ?error_handler:((string * exn) list -> Pages.page Lwt.t) ->
      (unit -> '-> Pages.page Lwt.t) ->
      (unit, 'a, [> `Nonattached of [> `Post ] Eliom_service.na_s ],
       [ `WithoutSuffix ], unit, 'b,
       [< Eliom_service.registrable > `Registrable ], Pages.return)
      Eliom_service.service
    val send :
      ?options:Pages.options ->
      ?charset:string ->
      ?code:int ->
      ?content_type:string ->
      ?headers:Http_headers.t -> Pages.page -> Pages.result Lwt.t
  end