sig   module ClientLogin :     sig       type auth_token = string       type captcha = { url : string; token : string; }       val url : (GapiAuthResponse.ClientLogin.captcha, string) GapiLens.t       val token : (GapiAuthResponse.ClientLogin.captcha, string) GapiLens.t     end   module OAuth1 :     sig       type request_token = {         request_token : string;         request_token_secret : string;         callback_confirmed : bool;       }       val request_token :         (GapiAuthResponse.OAuth1.request_token, string) GapiLens.t       val request_token_secret :         (GapiAuthResponse.OAuth1.request_token, string) GapiLens.t       val callback_confirmed :         (GapiAuthResponse.OAuth1.request_token, bool) GapiLens.t       type auth_token = { auth_token : string; verifier : string; }       val auth_token :         (GapiAuthResponse.OAuth1.auth_token, string) GapiLens.t       val verifier : (GapiAuthResponse.OAuth1.auth_token, string) GapiLens.t       type access_token = {         access_token : string;         access_token_secret : string;       }       val access_token :         (GapiAuthResponse.OAuth1.access_token, string) GapiLens.t       val access_token_secret :         (GapiAuthResponse.OAuth1.access_token, string) GapiLens.t     end   module AuthSub :     sig       type token_info = { target : string; scope : string; secure : bool; }       val target : (GapiAuthResponse.AuthSub.token_info, string) GapiLens.t       val scope : (GapiAuthResponse.AuthSub.token_info, string) GapiLens.t       val secure : (GapiAuthResponse.AuthSub.token_info, bool) GapiLens.t     end   module OAuth2 :     sig       type auth_code = string       type access_token = {         access_token : string;         token_type : string;         expires_in : int;         refresh_token : string;       }       val access_token :         (GapiAuthResponse.OAuth2.access_token, string) GapiLens.t       val token_type :         (GapiAuthResponse.OAuth2.access_token, string) GapiLens.t       val expires_in : (GapiAuthResponse.OAuth2.access_token, int) GapiLens.t       val refresh_token :         (GapiAuthResponse.OAuth2.access_token, string) GapiLens.t     end   type t =       ClientLoginAuthToken of GapiAuthResponse.ClientLogin.auth_token     | ClientLoginCaptcha of GapiAuthResponse.ClientLogin.captcha     | OAuth1RequestToken of GapiAuthResponse.OAuth1.request_token     | OAuth1AuthorizeToken of GapiAuthResponse.OAuth1.auth_token     | OAuth1GetAccessToken of GapiAuthResponse.OAuth1.access_token     | AuthSubTokenInfo of GapiAuthResponse.AuthSub.token_info     | OAuth2AuthCode of GapiAuthResponse.OAuth2.auth_code     | OAuth2AccessToken of GapiAuthResponse.OAuth2.access_token   val client_login_auth_token :     (GapiAuthResponse.t, GapiAuthResponse.ClientLogin.auth_token option)     GapiLens.t   val client_login_captcha :     (GapiAuthResponse.t, GapiAuthResponse.ClientLogin.captcha option)     GapiLens.t   val oauth1_request_token :     (GapiAuthResponse.t, GapiAuthResponse.OAuth1.request_token option)     GapiLens.t   val oauth1_authorize_token :     (GapiAuthResponse.t, GapiAuthResponse.OAuth1.auth_token option)     GapiLens.t   val oauth1_get_access_token :     (GapiAuthResponse.t, GapiAuthResponse.OAuth1.access_token option)     GapiLens.t   val auth_sub_token_info :     (GapiAuthResponse.t, GapiAuthResponse.AuthSub.token_info option)     GapiLens.t   val oauth2_auth_code :     (GapiAuthResponse.t, GapiAuthResponse.OAuth2.auth_code option) GapiLens.t   val oauth2_access_token :     (GapiAuthResponse.t, GapiAuthResponse.OAuth2.access_token option)     GapiLens.t end