sig   module Query :     sig       type t = {         count : int;         cr : string;         cref : string;         cx : string;         dateRestrict : string;         disableCnTwTranslation : string;         exactTerms : string;         excludeTerms : string;         fileType : string;         filter : string;         gl : string;         googleHost : string;         highRange : string;         hl : string;         hq : string;         imgColorType : string;         imgDominantColor : string;         imgSize : string;         imgType : string;         inputEncoding : string;         language : string;         linkSite : string;         lowRange : string;         orTerms : string;         outputEncoding : string;         relatedSite : string;         rights : string;         safe : string;         searchTerms : string;         searchType : string;         siteSearch : string;         siteSearchFilter : string;         sort : string;         startIndex : int;         startPage : int;         title : string;         totalResults : int64;       }       val count : (GapiCustomsearchV1Model.Query.t, int) GapiLens.t       val cr : (GapiCustomsearchV1Model.Query.t, string) GapiLens.t       val cref : (GapiCustomsearchV1Model.Query.t, string) GapiLens.t       val cx : (GapiCustomsearchV1Model.Query.t, string) GapiLens.t       val dateRestrict : (GapiCustomsearchV1Model.Query.t, string) GapiLens.t       val disableCnTwTranslation :         (GapiCustomsearchV1Model.Query.t, string) GapiLens.t       val exactTerms : (GapiCustomsearchV1Model.Query.t, string) GapiLens.t       val excludeTerms : (GapiCustomsearchV1Model.Query.t, string) GapiLens.t       val fileType : (GapiCustomsearchV1Model.Query.t, string) GapiLens.t       val filter : (GapiCustomsearchV1Model.Query.t, string) GapiLens.t       val gl : (GapiCustomsearchV1Model.Query.t, string) GapiLens.t       val googleHost : (GapiCustomsearchV1Model.Query.t, string) GapiLens.t       val highRange : (GapiCustomsearchV1Model.Query.t, string) GapiLens.t       val hl : (GapiCustomsearchV1Model.Query.t, string) GapiLens.t       val hq : (GapiCustomsearchV1Model.Query.t, string) GapiLens.t       val imgColorType : (GapiCustomsearchV1Model.Query.t, string) GapiLens.t       val imgDominantColor :         (GapiCustomsearchV1Model.Query.t, string) GapiLens.t       val imgSize : (GapiCustomsearchV1Model.Query.t, string) GapiLens.t       val imgType : (GapiCustomsearchV1Model.Query.t, string) GapiLens.t       val inputEncoding :         (GapiCustomsearchV1Model.Query.t, string) GapiLens.t       val language : (GapiCustomsearchV1Model.Query.t, string) GapiLens.t       val linkSite : (GapiCustomsearchV1Model.Query.t, string) GapiLens.t       val lowRange : (GapiCustomsearchV1Model.Query.t, string) GapiLens.t       val orTerms : (GapiCustomsearchV1Model.Query.t, string) GapiLens.t       val outputEncoding :         (GapiCustomsearchV1Model.Query.t, string) GapiLens.t       val relatedSite : (GapiCustomsearchV1Model.Query.t, string) GapiLens.t       val rights : (GapiCustomsearchV1Model.Query.t, string) GapiLens.t       val safe : (GapiCustomsearchV1Model.Query.t, string) GapiLens.t       val searchTerms : (GapiCustomsearchV1Model.Query.t, string) GapiLens.t       val searchType : (GapiCustomsearchV1Model.Query.t, string) GapiLens.t       val siteSearch : (GapiCustomsearchV1Model.Query.t, string) GapiLens.t       val siteSearchFilter :         (GapiCustomsearchV1Model.Query.t, string) GapiLens.t       val sort : (GapiCustomsearchV1Model.Query.t, string) GapiLens.t       val startIndex : (GapiCustomsearchV1Model.Query.t, int) GapiLens.t       val startPage : (GapiCustomsearchV1Model.Query.t, int) GapiLens.t       val title : (GapiCustomsearchV1Model.Query.t, string) GapiLens.t       val totalResults : (GapiCustomsearchV1Model.Query.t, int64) GapiLens.t       val empty : GapiCustomsearchV1Model.Query.t       val render :         GapiCustomsearchV1Model.Query.t -> GapiJson.json_data_model list       val parse :         GapiCustomsearchV1Model.Query.t ->         GapiJson.json_data_model -> GapiCustomsearchV1Model.Query.t       val to_data_model :         GapiCustomsearchV1Model.Query.t -> GapiJson.json_data_model       val of_data_model :         GapiJson.json_data_model -> GapiCustomsearchV1Model.Query.t     end   module Context :     sig       module Facets :         sig           type t = {             anchor : string;             label : string;             label_with_op : string;           }           val anchor :             (GapiCustomsearchV1Model.Context.Facets.t, string) GapiLens.t           val label :             (GapiCustomsearchV1Model.Context.Facets.t, string) GapiLens.t           val label_with_op :             (GapiCustomsearchV1Model.Context.Facets.t, string) GapiLens.t           val empty : GapiCustomsearchV1Model.Context.Facets.t           val render :             GapiCustomsearchV1Model.Context.Facets.t ->             GapiJson.json_data_model list           val parse :             GapiCustomsearchV1Model.Context.Facets.t ->             GapiJson.json_data_model ->             GapiCustomsearchV1Model.Context.Facets.t         end       type t = {         facets : GapiCustomsearchV1Model.Context.Facets.t list list;         title : string;       }       val facets :         (GapiCustomsearchV1Model.Context.t,          GapiCustomsearchV1Model.Context.Facets.t list list)         GapiLens.t       val title : (GapiCustomsearchV1Model.Context.t, string) GapiLens.t       val empty : GapiCustomsearchV1Model.Context.t       val render :         GapiCustomsearchV1Model.Context.t -> GapiJson.json_data_model list       val parse :         GapiCustomsearchV1Model.Context.t ->         GapiJson.json_data_model -> GapiCustomsearchV1Model.Context.t       val to_data_model :         GapiCustomsearchV1Model.Context.t -> GapiJson.json_data_model       val of_data_model :         GapiJson.json_data_model -> GapiCustomsearchV1Model.Context.t     end   module Result :     sig       module Labels :         sig           type t = {             displayName : string;             label_with_op : string;             name : string;           }           val displayName :             (GapiCustomsearchV1Model.Result.Labels.t, string) GapiLens.t           val label_with_op :             (GapiCustomsearchV1Model.Result.Labels.t, string) GapiLens.t           val name :             (GapiCustomsearchV1Model.Result.Labels.t, string) GapiLens.t           val empty : GapiCustomsearchV1Model.Result.Labels.t           val render :             GapiCustomsearchV1Model.Result.Labels.t ->             GapiJson.json_data_model list           val parse :             GapiCustomsearchV1Model.Result.Labels.t ->             GapiJson.json_data_model ->             GapiCustomsearchV1Model.Result.Labels.t         end       module Image :         sig           type t = {             byteSize : int;             contextLink : string;             height : int;             thumbnailHeight : int;             thumbnailLink : string;             thumbnailWidth : int;             width : int;           }           val byteSize :             (GapiCustomsearchV1Model.Result.Image.t, int) GapiLens.t           val contextLink :             (GapiCustomsearchV1Model.Result.Image.t, string) GapiLens.t           val height :             (GapiCustomsearchV1Model.Result.Image.t, int) GapiLens.t           val thumbnailHeight :             (GapiCustomsearchV1Model.Result.Image.t, int) GapiLens.t           val thumbnailLink :             (GapiCustomsearchV1Model.Result.Image.t, string) GapiLens.t           val thumbnailWidth :             (GapiCustomsearchV1Model.Result.Image.t, int) GapiLens.t           val width :             (GapiCustomsearchV1Model.Result.Image.t, int) GapiLens.t           val empty : GapiCustomsearchV1Model.Result.Image.t           val render :             GapiCustomsearchV1Model.Result.Image.t ->             GapiJson.json_data_model list           val parse :             GapiCustomsearchV1Model.Result.Image.t ->             GapiJson.json_data_model ->             GapiCustomsearchV1Model.Result.Image.t         end       type t = {         cacheId : string;         displayLink : string;         fileFormat : string;         formattedUrl : string;         htmlFormattedUrl : string;         htmlSnippet : string;         htmlTitle : string;         image : GapiCustomsearchV1Model.Result.Image.t;         kind : string;         labels : GapiCustomsearchV1Model.Result.Labels.t list;         link : string;         mime : string;         pagemap : (string * (string * string) list list) list;         snippet : string;         title : string;       }       val cacheId : (GapiCustomsearchV1Model.Result.t, string) GapiLens.t       val displayLink : (GapiCustomsearchV1Model.Result.t, string) GapiLens.t       val fileFormat : (GapiCustomsearchV1Model.Result.t, string) GapiLens.t       val formattedUrl :         (GapiCustomsearchV1Model.Result.t, string) GapiLens.t       val htmlFormattedUrl :         (GapiCustomsearchV1Model.Result.t, string) GapiLens.t       val htmlSnippet : (GapiCustomsearchV1Model.Result.t, string) GapiLens.t       val htmlTitle : (GapiCustomsearchV1Model.Result.t, string) GapiLens.t       val image :         (GapiCustomsearchV1Model.Result.t,          GapiCustomsearchV1Model.Result.Image.t)         GapiLens.t       val kind : (GapiCustomsearchV1Model.Result.t, string) GapiLens.t       val labels :         (GapiCustomsearchV1Model.Result.t,          GapiCustomsearchV1Model.Result.Labels.t list)         GapiLens.t       val link : (GapiCustomsearchV1Model.Result.t, string) GapiLens.t       val mime : (GapiCustomsearchV1Model.Result.t, string) GapiLens.t       val pagemap :         (GapiCustomsearchV1Model.Result.t,          (string * (string * string) list list) list)         GapiLens.t       val snippet : (GapiCustomsearchV1Model.Result.t, string) GapiLens.t       val title : (GapiCustomsearchV1Model.Result.t, string) GapiLens.t       val empty : GapiCustomsearchV1Model.Result.t       val render :         GapiCustomsearchV1Model.Result.t -> GapiJson.json_data_model list       val parse :         GapiCustomsearchV1Model.Result.t ->         GapiJson.json_data_model -> GapiCustomsearchV1Model.Result.t       val to_data_model :         GapiCustomsearchV1Model.Result.t -> GapiJson.json_data_model       val of_data_model :         GapiJson.json_data_model -> GapiCustomsearchV1Model.Result.t     end   module Promotion :     sig       module Image :         sig           type t = { height : int; source : string; width : int; }           val height :             (GapiCustomsearchV1Model.Promotion.Image.t, int) GapiLens.t           val source :             (GapiCustomsearchV1Model.Promotion.Image.t, string) GapiLens.t           val width :             (GapiCustomsearchV1Model.Promotion.Image.t, int) GapiLens.t           val empty : GapiCustomsearchV1Model.Promotion.Image.t           val render :             GapiCustomsearchV1Model.Promotion.Image.t ->             GapiJson.json_data_model list           val parse :             GapiCustomsearchV1Model.Promotion.Image.t ->             GapiJson.json_data_model ->             GapiCustomsearchV1Model.Promotion.Image.t         end       module BodyLines :         sig           type t = {             htmlTitle : string;             link : string;             title : string;             url : string;           }           val htmlTitle :             (GapiCustomsearchV1Model.Promotion.BodyLines.t, string)             GapiLens.t           val link :             (GapiCustomsearchV1Model.Promotion.BodyLines.t, string)             GapiLens.t           val title :             (GapiCustomsearchV1Model.Promotion.BodyLines.t, string)             GapiLens.t           val url :             (GapiCustomsearchV1Model.Promotion.BodyLines.t, string)             GapiLens.t           val empty : GapiCustomsearchV1Model.Promotion.BodyLines.t           val render :             GapiCustomsearchV1Model.Promotion.BodyLines.t ->             GapiJson.json_data_model list           val parse :             GapiCustomsearchV1Model.Promotion.BodyLines.t ->             GapiJson.json_data_model ->             GapiCustomsearchV1Model.Promotion.BodyLines.t         end       type t = {         bodyLines : GapiCustomsearchV1Model.Promotion.BodyLines.t list;         displayLink : string;         htmlTitle : string;         image : GapiCustomsearchV1Model.Promotion.Image.t;         link : string;         title : string;       }       val bodyLines :         (GapiCustomsearchV1Model.Promotion.t,          GapiCustomsearchV1Model.Promotion.BodyLines.t list)         GapiLens.t       val displayLink :         (GapiCustomsearchV1Model.Promotion.t, string) GapiLens.t       val htmlTitle :         (GapiCustomsearchV1Model.Promotion.t, string) GapiLens.t       val image :         (GapiCustomsearchV1Model.Promotion.t,          GapiCustomsearchV1Model.Promotion.Image.t)         GapiLens.t       val link : (GapiCustomsearchV1Model.Promotion.t, string) GapiLens.t       val title : (GapiCustomsearchV1Model.Promotion.t, string) GapiLens.t       val empty : GapiCustomsearchV1Model.Promotion.t       val render :         GapiCustomsearchV1Model.Promotion.t -> GapiJson.json_data_model list       val parse :         GapiCustomsearchV1Model.Promotion.t ->         GapiJson.json_data_model -> GapiCustomsearchV1Model.Promotion.t       val to_data_model :         GapiCustomsearchV1Model.Promotion.t -> GapiJson.json_data_model       val of_data_model :         GapiJson.json_data_model -> GapiCustomsearchV1Model.Promotion.t     end   module Search :     sig       module Url :         sig           type t = { template : string; _type : string; }           val template :             (GapiCustomsearchV1Model.Search.Url.t, string) GapiLens.t           val _type :             (GapiCustomsearchV1Model.Search.Url.t, string) GapiLens.t           val empty : GapiCustomsearchV1Model.Search.Url.t           val render :             GapiCustomsearchV1Model.Search.Url.t ->             GapiJson.json_data_model list           val parse :             GapiCustomsearchV1Model.Search.Url.t ->             GapiJson.json_data_model -> GapiCustomsearchV1Model.Search.Url.t         end       module Spelling :         sig           type t = { correctedQuery : string; htmlCorrectedQuery : string; }           val correctedQuery :             (GapiCustomsearchV1Model.Search.Spelling.t, string) GapiLens.t           val htmlCorrectedQuery :             (GapiCustomsearchV1Model.Search.Spelling.t, string) GapiLens.t           val empty : GapiCustomsearchV1Model.Search.Spelling.t           val render :             GapiCustomsearchV1Model.Search.Spelling.t ->             GapiJson.json_data_model list           val parse :             GapiCustomsearchV1Model.Search.Spelling.t ->             GapiJson.json_data_model ->             GapiCustomsearchV1Model.Search.Spelling.t         end       module SearchInformation :         sig           type t = {             formattedSearchTime : string;             formattedTotalResults : string;             searchTime : float;             totalResults : int64;           }           val formattedSearchTime :             (GapiCustomsearchV1Model.Search.SearchInformation.t, string)             GapiLens.t           val formattedTotalResults :             (GapiCustomsearchV1Model.Search.SearchInformation.t, string)             GapiLens.t           val searchTime :             (GapiCustomsearchV1Model.Search.SearchInformation.t, float)             GapiLens.t           val totalResults :             (GapiCustomsearchV1Model.Search.SearchInformation.t, int64)             GapiLens.t           val empty : GapiCustomsearchV1Model.Search.SearchInformation.t           val render :             GapiCustomsearchV1Model.Search.SearchInformation.t ->             GapiJson.json_data_model list           val parse :             GapiCustomsearchV1Model.Search.SearchInformation.t ->             GapiJson.json_data_model ->             GapiCustomsearchV1Model.Search.SearchInformation.t         end       type t = {         context : GapiCustomsearchV1Model.Context.t;         items : GapiCustomsearchV1Model.Result.t list;         kind : string;         promotions : GapiCustomsearchV1Model.Promotion.t list;         queries : (string * GapiCustomsearchV1Model.Query.t list) list;         searchInformation :           GapiCustomsearchV1Model.Search.SearchInformation.t;         spelling : GapiCustomsearchV1Model.Search.Spelling.t;         url : GapiCustomsearchV1Model.Search.Url.t;       }       val context :         (GapiCustomsearchV1Model.Search.t, GapiCustomsearchV1Model.Context.t)         GapiLens.t       val items :         (GapiCustomsearchV1Model.Search.t,          GapiCustomsearchV1Model.Result.t list)         GapiLens.t       val kind : (GapiCustomsearchV1Model.Search.t, string) GapiLens.t       val promotions :         (GapiCustomsearchV1Model.Search.t,          GapiCustomsearchV1Model.Promotion.t list)         GapiLens.t       val queries :         (GapiCustomsearchV1Model.Search.t,          (string * GapiCustomsearchV1Model.Query.t list) list)         GapiLens.t       val searchInformation :         (GapiCustomsearchV1Model.Search.t,          GapiCustomsearchV1Model.Search.SearchInformation.t)         GapiLens.t       val spelling :         (GapiCustomsearchV1Model.Search.t,          GapiCustomsearchV1Model.Search.Spelling.t)         GapiLens.t       val url :         (GapiCustomsearchV1Model.Search.t,          GapiCustomsearchV1Model.Search.Url.t)         GapiLens.t       val empty : GapiCustomsearchV1Model.Search.t       val render :         GapiCustomsearchV1Model.Search.t -> GapiJson.json_data_model list       val parse :         GapiCustomsearchV1Model.Search.t ->         GapiJson.json_data_model -> GapiCustomsearchV1Model.Search.t       val to_data_model :         GapiCustomsearchV1Model.Search.t -> GapiJson.json_data_model       val of_data_model :         GapiJson.json_data_model -> GapiCustomsearchV1Model.Search.t     end end