functor (Pages : REGCREATE->
  sig
    type page = Pages.page
    val register_service :
      service:('a, 'b, [ `Internal_Service of 'c ],
               [< `WithSuffix | `WithoutSuffix ], 'd, 'e)
              service ->
      ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
      (server_params -> '-> '-> page Lwt.t) -> unit
    val register_service_for_session :
      server_params ->
      service:('a, 'b, [ `Internal_Service of 'c ],
               [< `WithSuffix | `WithoutSuffix ], 'd, 'e)
              service ->
      ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
      (server_params -> '-> '-> page Lwt.t) -> unit
    val register_new_service :
      url:url_path ->
      ?prefix:bool ->
      get_params:('a, [< `WithSuffix | `WithoutSuffix ] as 'b, 'c)
                 params_type ->
      ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
      (server_params -> '-> unit -> page Lwt.t) ->
      ('a, unit, [ `Internal_Service of [ `Public_Service ] ], 'b, 'c,
       unit param_name)
      service
    val register_new_auxiliary_service :
      fallback:('a, unit, [ `Internal_Service of [ `Public_Service ] ],
                [< `WithSuffix | `WithoutSuffix ] as 'b, 'c, 'd)
               service ->
      ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
      (server_params -> '-> unit -> page Lwt.t) ->
      ('a, unit, [ `Internal_Service of [ `Local_Service ] ], 'b, 'c, 'd)
      service
    val register_new_auxiliary_service_for_session :
      server_params ->
      fallback:('a, unit, [ `Internal_Service of [ `Public_Service ] ],
                [< `WithSuffix | `WithoutSuffix ] as 'b, 'c, 'd)
               service ->
      ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
      (server_params -> '-> unit -> page Lwt.t) ->
      ('a, unit, [ `Internal_Service of [ `Local_Service ] ], 'b, 'c, 'd)
      service
    val register_new_post_service :
      fallback:('a, unit, [ `Internal_Service of [ `Public_Service ] ],
                [< `WithSuffix | `WithoutSuffix ] as 'b, 'c, unit param_name)
               service ->
      post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
      ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
      (server_params -> '-> '-> page Lwt.t) ->
      ('a, 'd, [ `Internal_Service of [ `Public_Service ] ], 'b, 'c, 'e)
      service
    val register_new_post_auxiliary_service :
      fallback:('a, 'b, [ `Internal_Service of [ `Public_Service ] ],
                [< `WithSuffix | `WithoutSuffix ] as 'c, 'd, 'e)
               service ->
      post_params:('f, [ `WithoutSuffix ], 'g) params_type ->
      ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
      (server_params -> '-> '-> page Lwt.t) ->
      ('a, 'f, [ `Internal_Service of [ `Local_Service ] ], 'c, 'd, 'g)
      service
    val register_new_post_auxiliary_service_for_session :
      server_params ->
      fallback:('a, 'b, [ `Internal_Service of [ `Public_Service ] ],
                [< `WithSuffix | `WithoutSuffix ] as 'c, 'd, 'e)
               service ->
      post_params:('f, [ `WithoutSuffix ], 'g) params_type ->
      ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
      (server_params -> '-> '-> page Lwt.t) ->
      ('a, 'f, [ `Internal_Service of [ `Local_Service ] ], 'c, 'd, 'g)
      service
  end