sig   module MessagePartHeader :     sig       type t = { name : string; value : string; }       val name : (GapiGmailV1Model.MessagePartHeader.t, string) GapiLens.t       val value : (GapiGmailV1Model.MessagePartHeader.t, string) GapiLens.t       val empty : GapiGmailV1Model.MessagePartHeader.t       val render :         GapiGmailV1Model.MessagePartHeader.t -> GapiJson.json_data_model list       val parse :         GapiGmailV1Model.MessagePartHeader.t ->         GapiJson.json_data_model -> GapiGmailV1Model.MessagePartHeader.t       val to_data_model :         GapiGmailV1Model.MessagePartHeader.t -> GapiJson.json_data_model       val of_data_model :         GapiJson.json_data_model -> GapiGmailV1Model.MessagePartHeader.t     end   module MessagePartBody :     sig       type t = { attachmentId : string; data : string; size : int; }       val attachmentId :         (GapiGmailV1Model.MessagePartBody.t, string) GapiLens.t       val data : (GapiGmailV1Model.MessagePartBody.t, string) GapiLens.t       val size : (GapiGmailV1Model.MessagePartBody.t, int) GapiLens.t       val empty : GapiGmailV1Model.MessagePartBody.t       val render :         GapiGmailV1Model.MessagePartBody.t -> GapiJson.json_data_model list       val parse :         GapiGmailV1Model.MessagePartBody.t ->         GapiJson.json_data_model -> GapiGmailV1Model.MessagePartBody.t       val to_data_model :         GapiGmailV1Model.MessagePartBody.t -> GapiJson.json_data_model       val of_data_model :         GapiJson.json_data_model -> GapiGmailV1Model.MessagePartBody.t     end   module MessagePart :     sig       type t = {         body : GapiGmailV1Model.MessagePartBody.t;         filename : string;         headers : GapiGmailV1Model.MessagePartHeader.t list;         mimeType : string;         partId : string;         parts : GapiGmailV1Model.MessagePart.t list;       }       val body :         (GapiGmailV1Model.MessagePart.t, GapiGmailV1Model.MessagePartBody.t)         GapiLens.t       val filename : (GapiGmailV1Model.MessagePart.t, string) GapiLens.t       val headers :         (GapiGmailV1Model.MessagePart.t,          GapiGmailV1Model.MessagePartHeader.t list)         GapiLens.t       val mimeType : (GapiGmailV1Model.MessagePart.t, string) GapiLens.t       val partId : (GapiGmailV1Model.MessagePart.t, string) GapiLens.t       val parts :         (GapiGmailV1Model.MessagePart.t, GapiGmailV1Model.MessagePart.t list)         GapiLens.t       val empty : GapiGmailV1Model.MessagePart.t       val render :         GapiGmailV1Model.MessagePart.t -> GapiJson.json_data_model list       val parse :         GapiGmailV1Model.MessagePart.t ->         GapiJson.json_data_model -> GapiGmailV1Model.MessagePart.t       val to_data_model :         GapiGmailV1Model.MessagePart.t -> GapiJson.json_data_model       val of_data_model :         GapiJson.json_data_model -> GapiGmailV1Model.MessagePart.t     end   module Message :     sig       type t = {         historyId : string;         id : string;         internalDate : int64;         labelIds : string list;         payload : GapiGmailV1Model.MessagePart.t;         raw : string;         sizeEstimate : int;         snippet : string;         threadId : string;       }       val historyId : (GapiGmailV1Model.Message.t, string) GapiLens.t       val id : (GapiGmailV1Model.Message.t, string) GapiLens.t       val internalDate : (GapiGmailV1Model.Message.t, int64) GapiLens.t       val labelIds : (GapiGmailV1Model.Message.t, string list) GapiLens.t       val payload :         (GapiGmailV1Model.Message.t, GapiGmailV1Model.MessagePart.t)         GapiLens.t       val raw : (GapiGmailV1Model.Message.t, string) GapiLens.t       val sizeEstimate : (GapiGmailV1Model.Message.t, int) GapiLens.t       val snippet : (GapiGmailV1Model.Message.t, string) GapiLens.t       val threadId : (GapiGmailV1Model.Message.t, string) GapiLens.t       val empty : GapiGmailV1Model.Message.t       val render :         GapiGmailV1Model.Message.t -> GapiJson.json_data_model list       val parse :         GapiGmailV1Model.Message.t ->         GapiJson.json_data_model -> GapiGmailV1Model.Message.t       val to_data_model :         GapiGmailV1Model.Message.t -> GapiJson.json_data_model       val of_data_model :         GapiJson.json_data_model -> GapiGmailV1Model.Message.t     end   module HistoryLabelRemoved :     sig       type t = {         labelIds : string list;         message : GapiGmailV1Model.Message.t;       }       val labelIds :         (GapiGmailV1Model.HistoryLabelRemoved.t, string list) GapiLens.t       val message :         (GapiGmailV1Model.HistoryLabelRemoved.t, GapiGmailV1Model.Message.t)         GapiLens.t       val empty : GapiGmailV1Model.HistoryLabelRemoved.t       val render :         GapiGmailV1Model.HistoryLabelRemoved.t ->         GapiJson.json_data_model list       val parse :         GapiGmailV1Model.HistoryLabelRemoved.t ->         GapiJson.json_data_model -> GapiGmailV1Model.HistoryLabelRemoved.t       val to_data_model :         GapiGmailV1Model.HistoryLabelRemoved.t -> GapiJson.json_data_model       val of_data_model :         GapiJson.json_data_model -> GapiGmailV1Model.HistoryLabelRemoved.t     end   module ModifyThreadRequest :     sig       type t = { addLabelIds : string list; removeLabelIds : string list; }       val addLabelIds :         (GapiGmailV1Model.ModifyThreadRequest.t, string list) GapiLens.t       val removeLabelIds :         (GapiGmailV1Model.ModifyThreadRequest.t, string list) GapiLens.t       val empty : GapiGmailV1Model.ModifyThreadRequest.t       val render :         GapiGmailV1Model.ModifyThreadRequest.t ->         GapiJson.json_data_model list       val parse :         GapiGmailV1Model.ModifyThreadRequest.t ->         GapiJson.json_data_model -> GapiGmailV1Model.ModifyThreadRequest.t       val to_data_model :         GapiGmailV1Model.ModifyThreadRequest.t -> GapiJson.json_data_model       val of_data_model :         GapiJson.json_data_model -> GapiGmailV1Model.ModifyThreadRequest.t     end   module Label :     sig       type t = {         id : string;         labelListVisibility : string;         messageListVisibility : string;         messagesTotal : int;         messagesUnread : int;         name : string;         threadsTotal : int;         threadsUnread : int;         _type : string;       }       val id : (GapiGmailV1Model.Label.t, string) GapiLens.t       val labelListVisibility : (GapiGmailV1Model.Label.t, string) GapiLens.t       val messageListVisibility :         (GapiGmailV1Model.Label.t, string) GapiLens.t       val messagesTotal : (GapiGmailV1Model.Label.t, int) GapiLens.t       val messagesUnread : (GapiGmailV1Model.Label.t, int) GapiLens.t       val name : (GapiGmailV1Model.Label.t, string) GapiLens.t       val threadsTotal : (GapiGmailV1Model.Label.t, int) GapiLens.t       val threadsUnread : (GapiGmailV1Model.Label.t, int) GapiLens.t       val _type : (GapiGmailV1Model.Label.t, string) GapiLens.t       val empty : GapiGmailV1Model.Label.t       val render : GapiGmailV1Model.Label.t -> GapiJson.json_data_model list       val parse :         GapiGmailV1Model.Label.t ->         GapiJson.json_data_model -> GapiGmailV1Model.Label.t       val to_data_model :         GapiGmailV1Model.Label.t -> GapiJson.json_data_model       val of_data_model :         GapiJson.json_data_model -> GapiGmailV1Model.Label.t     end   module Profile :     sig       type t = {         emailAddress : string;         historyId : string;         messagesTotal : int;         threadsTotal : int;       }       val emailAddress : (GapiGmailV1Model.Profile.t, string) GapiLens.t       val historyId : (GapiGmailV1Model.Profile.t, string) GapiLens.t       val messagesTotal : (GapiGmailV1Model.Profile.t, int) GapiLens.t       val threadsTotal : (GapiGmailV1Model.Profile.t, int) GapiLens.t       val empty : GapiGmailV1Model.Profile.t       val render :         GapiGmailV1Model.Profile.t -> GapiJson.json_data_model list       val parse :         GapiGmailV1Model.Profile.t ->         GapiJson.json_data_model -> GapiGmailV1Model.Profile.t       val to_data_model :         GapiGmailV1Model.Profile.t -> GapiJson.json_data_model       val of_data_model :         GapiJson.json_data_model -> GapiGmailV1Model.Profile.t     end   module ModifyMessageRequest :     sig       type t = { addLabelIds : string list; removeLabelIds : string list; }       val addLabelIds :         (GapiGmailV1Model.ModifyMessageRequest.t, string list) GapiLens.t       val removeLabelIds :         (GapiGmailV1Model.ModifyMessageRequest.t, string list) GapiLens.t       val empty : GapiGmailV1Model.ModifyMessageRequest.t       val render :         GapiGmailV1Model.ModifyMessageRequest.t ->         GapiJson.json_data_model list       val parse :         GapiGmailV1Model.ModifyMessageRequest.t ->         GapiJson.json_data_model -> GapiGmailV1Model.ModifyMessageRequest.t       val to_data_model :         GapiGmailV1Model.ModifyMessageRequest.t -> GapiJson.json_data_model       val of_data_model :         GapiJson.json_data_model -> GapiGmailV1Model.ModifyMessageRequest.t     end   module Thread :     sig       type t = {         historyId : string;         id : string;         messages : GapiGmailV1Model.Message.t list;         snippet : string;       }       val historyId : (GapiGmailV1Model.Thread.t, string) GapiLens.t       val id : (GapiGmailV1Model.Thread.t, string) GapiLens.t       val messages :         (GapiGmailV1Model.Thread.t, GapiGmailV1Model.Message.t list)         GapiLens.t       val snippet : (GapiGmailV1Model.Thread.t, string) GapiLens.t       val empty : GapiGmailV1Model.Thread.t       val render : GapiGmailV1Model.Thread.t -> GapiJson.json_data_model list       val parse :         GapiGmailV1Model.Thread.t ->         GapiJson.json_data_model -> GapiGmailV1Model.Thread.t       val to_data_model :         GapiGmailV1Model.Thread.t -> GapiJson.json_data_model       val of_data_model :         GapiJson.json_data_model -> GapiGmailV1Model.Thread.t     end   module WatchResponse :     sig       type t = { expiration : int64; historyId : string; }       val expiration : (GapiGmailV1Model.WatchResponse.t, int64) GapiLens.t       val historyId : (GapiGmailV1Model.WatchResponse.t, string) GapiLens.t       val empty : GapiGmailV1Model.WatchResponse.t       val render :         GapiGmailV1Model.WatchResponse.t -> GapiJson.json_data_model list       val parse :         GapiGmailV1Model.WatchResponse.t ->         GapiJson.json_data_model -> GapiGmailV1Model.WatchResponse.t       val to_data_model :         GapiGmailV1Model.WatchResponse.t -> GapiJson.json_data_model       val of_data_model :         GapiJson.json_data_model -> GapiGmailV1Model.WatchResponse.t     end   module HistoryLabelAdded :     sig       type t = {         labelIds : string list;         message : GapiGmailV1Model.Message.t;       }       val labelIds :         (GapiGmailV1Model.HistoryLabelAdded.t, string list) GapiLens.t       val message :         (GapiGmailV1Model.HistoryLabelAdded.t, GapiGmailV1Model.Message.t)         GapiLens.t       val empty : GapiGmailV1Model.HistoryLabelAdded.t       val render :         GapiGmailV1Model.HistoryLabelAdded.t -> GapiJson.json_data_model list       val parse :         GapiGmailV1Model.HistoryLabelAdded.t ->         GapiJson.json_data_model -> GapiGmailV1Model.HistoryLabelAdded.t       val to_data_model :         GapiGmailV1Model.HistoryLabelAdded.t -> GapiJson.json_data_model       val of_data_model :         GapiJson.json_data_model -> GapiGmailV1Model.HistoryLabelAdded.t     end   module ListThreadsResponse :     sig       type t = {         nextPageToken : string;         resultSizeEstimate : int;         threads : GapiGmailV1Model.Thread.t list;       }       val nextPageToken :         (GapiGmailV1Model.ListThreadsResponse.t, string) GapiLens.t       val resultSizeEstimate :         (GapiGmailV1Model.ListThreadsResponse.t, int) GapiLens.t       val threads :         (GapiGmailV1Model.ListThreadsResponse.t,          GapiGmailV1Model.Thread.t list)         GapiLens.t       val empty : GapiGmailV1Model.ListThreadsResponse.t       val render :         GapiGmailV1Model.ListThreadsResponse.t ->         GapiJson.json_data_model list       val parse :         GapiGmailV1Model.ListThreadsResponse.t ->         GapiJson.json_data_model -> GapiGmailV1Model.ListThreadsResponse.t       val to_data_model :         GapiGmailV1Model.ListThreadsResponse.t -> GapiJson.json_data_model       val of_data_model :         GapiJson.json_data_model -> GapiGmailV1Model.ListThreadsResponse.t     end   module Draft :     sig       type t = { id : string; message : GapiGmailV1Model.Message.t; }       val id : (GapiGmailV1Model.Draft.t, string) GapiLens.t       val message :         (GapiGmailV1Model.Draft.t, GapiGmailV1Model.Message.t) GapiLens.t       val empty : GapiGmailV1Model.Draft.t       val render : GapiGmailV1Model.Draft.t -> GapiJson.json_data_model list       val parse :         GapiGmailV1Model.Draft.t ->         GapiJson.json_data_model -> GapiGmailV1Model.Draft.t       val to_data_model :         GapiGmailV1Model.Draft.t -> GapiJson.json_data_model       val of_data_model :         GapiJson.json_data_model -> GapiGmailV1Model.Draft.t     end   module ListDraftsResponse :     sig       type t = {         drafts : GapiGmailV1Model.Draft.t list;         nextPageToken : string;         resultSizeEstimate : int;       }       val drafts :         (GapiGmailV1Model.ListDraftsResponse.t,          GapiGmailV1Model.Draft.t list)         GapiLens.t       val nextPageToken :         (GapiGmailV1Model.ListDraftsResponse.t, string) GapiLens.t       val resultSizeEstimate :         (GapiGmailV1Model.ListDraftsResponse.t, int) GapiLens.t       val empty : GapiGmailV1Model.ListDraftsResponse.t       val render :         GapiGmailV1Model.ListDraftsResponse.t ->         GapiJson.json_data_model list       val parse :         GapiGmailV1Model.ListDraftsResponse.t ->         GapiJson.json_data_model -> GapiGmailV1Model.ListDraftsResponse.t       val to_data_model :         GapiGmailV1Model.ListDraftsResponse.t -> GapiJson.json_data_model       val of_data_model :         GapiJson.json_data_model -> GapiGmailV1Model.ListDraftsResponse.t     end   module HistoryMessageAdded :     sig       type t = { message : GapiGmailV1Model.Message.t; }       val message :         (GapiGmailV1Model.HistoryMessageAdded.t, GapiGmailV1Model.Message.t)         GapiLens.t       val empty : GapiGmailV1Model.HistoryMessageAdded.t       val render :         GapiGmailV1Model.HistoryMessageAdded.t ->         GapiJson.json_data_model list       val parse :         GapiGmailV1Model.HistoryMessageAdded.t ->         GapiJson.json_data_model -> GapiGmailV1Model.HistoryMessageAdded.t       val to_data_model :         GapiGmailV1Model.HistoryMessageAdded.t -> GapiJson.json_data_model       val of_data_model :         GapiJson.json_data_model -> GapiGmailV1Model.HistoryMessageAdded.t     end   module HistoryMessageDeleted :     sig       type t = { message : GapiGmailV1Model.Message.t; }       val message :         (GapiGmailV1Model.HistoryMessageDeleted.t,          GapiGmailV1Model.Message.t)         GapiLens.t       val empty : GapiGmailV1Model.HistoryMessageDeleted.t       val render :         GapiGmailV1Model.HistoryMessageDeleted.t ->         GapiJson.json_data_model list       val parse :         GapiGmailV1Model.HistoryMessageDeleted.t ->         GapiJson.json_data_model -> GapiGmailV1Model.HistoryMessageDeleted.t       val to_data_model :         GapiGmailV1Model.HistoryMessageDeleted.t -> GapiJson.json_data_model       val of_data_model :         GapiJson.json_data_model -> GapiGmailV1Model.HistoryMessageDeleted.t     end   module History :     sig       type t = {         id : string;         labelsAdded : GapiGmailV1Model.HistoryLabelAdded.t list;         labelsRemoved : GapiGmailV1Model.HistoryLabelRemoved.t list;         messages : GapiGmailV1Model.Message.t list;         messagesAdded : GapiGmailV1Model.HistoryMessageAdded.t list;         messagesDeleted : GapiGmailV1Model.HistoryMessageDeleted.t list;       }       val id : (GapiGmailV1Model.History.t, string) GapiLens.t       val labelsAdded :         (GapiGmailV1Model.History.t,          GapiGmailV1Model.HistoryLabelAdded.t list)         GapiLens.t       val labelsRemoved :         (GapiGmailV1Model.History.t,          GapiGmailV1Model.HistoryLabelRemoved.t list)         GapiLens.t       val messages :         (GapiGmailV1Model.History.t, GapiGmailV1Model.Message.t list)         GapiLens.t       val messagesAdded :         (GapiGmailV1Model.History.t,          GapiGmailV1Model.HistoryMessageAdded.t list)         GapiLens.t       val messagesDeleted :         (GapiGmailV1Model.History.t,          GapiGmailV1Model.HistoryMessageDeleted.t list)         GapiLens.t       val empty : GapiGmailV1Model.History.t       val render :         GapiGmailV1Model.History.t -> GapiJson.json_data_model list       val parse :         GapiGmailV1Model.History.t ->         GapiJson.json_data_model -> GapiGmailV1Model.History.t       val to_data_model :         GapiGmailV1Model.History.t -> GapiJson.json_data_model       val of_data_model :         GapiJson.json_data_model -> GapiGmailV1Model.History.t     end   module ListHistoryResponse :     sig       type t = {         history : GapiGmailV1Model.History.t list;         historyId : string;         nextPageToken : string;       }       val history :         (GapiGmailV1Model.ListHistoryResponse.t,          GapiGmailV1Model.History.t list)         GapiLens.t       val historyId :         (GapiGmailV1Model.ListHistoryResponse.t, string) GapiLens.t       val nextPageToken :         (GapiGmailV1Model.ListHistoryResponse.t, string) GapiLens.t       val empty : GapiGmailV1Model.ListHistoryResponse.t       val render :         GapiGmailV1Model.ListHistoryResponse.t ->         GapiJson.json_data_model list       val parse :         GapiGmailV1Model.ListHistoryResponse.t ->         GapiJson.json_data_model -> GapiGmailV1Model.ListHistoryResponse.t       val to_data_model :         GapiGmailV1Model.ListHistoryResponse.t -> GapiJson.json_data_model       val of_data_model :         GapiJson.json_data_model -> GapiGmailV1Model.ListHistoryResponse.t     end   module WatchRequest :     sig       type t = {         labelFilterAction : string;         labelIds : string list;         topicName : string;       }       val labelFilterAction :         (GapiGmailV1Model.WatchRequest.t, string) GapiLens.t       val labelIds :         (GapiGmailV1Model.WatchRequest.t, string list) GapiLens.t       val topicName : (GapiGmailV1Model.WatchRequest.t, string) GapiLens.t       val empty : GapiGmailV1Model.WatchRequest.t       val render :         GapiGmailV1Model.WatchRequest.t -> GapiJson.json_data_model list       val parse :         GapiGmailV1Model.WatchRequest.t ->         GapiJson.json_data_model -> GapiGmailV1Model.WatchRequest.t       val to_data_model :         GapiGmailV1Model.WatchRequest.t -> GapiJson.json_data_model       val of_data_model :         GapiJson.json_data_model -> GapiGmailV1Model.WatchRequest.t     end   module ListMessagesResponse :     sig       type t = {         messages : GapiGmailV1Model.Message.t list;         nextPageToken : string;         resultSizeEstimate : int;       }       val messages :         (GapiGmailV1Model.ListMessagesResponse.t,          GapiGmailV1Model.Message.t list)         GapiLens.t       val nextPageToken :         (GapiGmailV1Model.ListMessagesResponse.t, string) GapiLens.t       val resultSizeEstimate :         (GapiGmailV1Model.ListMessagesResponse.t, int) GapiLens.t       val empty : GapiGmailV1Model.ListMessagesResponse.t       val render :         GapiGmailV1Model.ListMessagesResponse.t ->         GapiJson.json_data_model list       val parse :         GapiGmailV1Model.ListMessagesResponse.t ->         GapiJson.json_data_model -> GapiGmailV1Model.ListMessagesResponse.t       val to_data_model :         GapiGmailV1Model.ListMessagesResponse.t -> GapiJson.json_data_model       val of_data_model :         GapiJson.json_data_model -> GapiGmailV1Model.ListMessagesResponse.t     end   module ListLabelsResponse :     sig       type t = { labels : GapiGmailV1Model.Label.t list; }       val labels :         (GapiGmailV1Model.ListLabelsResponse.t,          GapiGmailV1Model.Label.t list)         GapiLens.t       val empty : GapiGmailV1Model.ListLabelsResponse.t       val render :         GapiGmailV1Model.ListLabelsResponse.t ->         GapiJson.json_data_model list       val parse :         GapiGmailV1Model.ListLabelsResponse.t ->         GapiJson.json_data_model -> GapiGmailV1Model.ListLabelsResponse.t       val to_data_model :         GapiGmailV1Model.ListLabelsResponse.t -> GapiJson.json_data_model       val of_data_model :         GapiJson.json_data_model -> GapiGmailV1Model.ListLabelsResponse.t     end end