functor (S : HiddenServiceInfo->
  sig
    val authenticate :
      mode:string ->
      ext:'Eliom_openid.extension ->
      handler:('Eliom_openid.authentication_result ->
               (Eliom_registration.browser_content,
                Eliom_registration.http_service)
               Eliom_registration.kind Lwt.t) ->
      discovery:string * string option -> Eliom_lib.Url.t Lwt.t
  end