sig
  type venue = {
    location : TelegramApi.Location.location;
    title : string;
    address : string;
    foursquare_id : string option;
  }
  val create :
    location:TelegramApi.Location.location ->
    title:string ->
    address:string ->
    ?foursquare_id:string option -> unit -> TelegramApi.Venue.venue
  val read : Yojson.Safe.json -> TelegramApi.Venue.venue
  module Out :
    sig
      type venue = {
        chat_id : int;
        latitude : float;
        longitude : float;
        title : string;
        address : string;
        foursquare_id : string option;
        disable_notification : bool;
        reply_to_message_id : int option;
        reply_markup : TelegramApi.ReplyMarkup.reply_markup option;
      }
      val create :
        chat_id:int ->
        latitude:float ->
        longitude:float ->
        title:string ->
        address:string ->
        ?foursquare_id:string option ->
        ?disable_notification:bool ->
        reply_to:int option ->
        reply_markup:TelegramApi.ReplyMarkup.reply_markup option ->
        unit -> TelegramApi.Venue.Out.venue
      val prepare : TelegramApi.Venue.Out.venue -> string
    end
end