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