sig
  module Position :
    sig
      type t = { latitude : float; longitude : float; }
      val latitude : (GapiPlusV1Model.Place.Position.t, float) GapiLens.t
      val longitude : (GapiPlusV1Model.Place.Position.t, float) GapiLens.t
      val empty : GapiPlusV1Model.Place.Position.t
      val render :
        GapiPlusV1Model.Place.Position.t -> GapiJson.json_data_model list
      val parse :
        GapiPlusV1Model.Place.Position.t ->
        GapiJson.json_data_model -> GapiPlusV1Model.Place.Position.t
    end
  module Address :
    sig
      type t = { formatted : string; }
      val formatted : (GapiPlusV1Model.Place.Address.t, string) GapiLens.t
      val empty : GapiPlusV1Model.Place.Address.t
      val render :
        GapiPlusV1Model.Place.Address.t -> GapiJson.json_data_model list
      val parse :
        GapiPlusV1Model.Place.Address.t ->
        GapiJson.json_data_model -> GapiPlusV1Model.Place.Address.t
    end
  type t = {
    address : GapiPlusV1Model.Place.Address.t;
    displayName : string;
    id : string;
    kind : string;
    position : GapiPlusV1Model.Place.Position.t;
  }
  val address :
    (GapiPlusV1Model.Place.t, GapiPlusV1Model.Place.Address.t) GapiLens.t
  val displayName : (GapiPlusV1Model.Place.t, string) GapiLens.t
  val id : (GapiPlusV1Model.Place.t, string) GapiLens.t
  val kind : (GapiPlusV1Model.Place.t, string) GapiLens.t
  val position :
    (GapiPlusV1Model.Place.t, GapiPlusV1Model.Place.Position.t) GapiLens.t
  val empty : GapiPlusV1Model.Place.t
  val render : GapiPlusV1Model.Place.t -> GapiJson.json_data_model list
  val parse :
    GapiPlusV1Model.Place.t ->
    GapiJson.json_data_model -> GapiPlusV1Model.Place.t
  val to_data_model : GapiPlusV1Model.Place.t -> GapiJson.json_data_model
  val of_data_model : GapiJson.json_data_model -> GapiPlusV1Model.Place.t
end