sig
  type user = {
    id : int;
    first_name : string;
    last_name : string option;
    username : string option;
  }
  val create :
    id:int ->
    first_name:string ->
    ?last_name:string option ->
    ?username:string option -> unit -> TelegramApi.User.user
  val read : Yojson.Safe.json -> TelegramApi.User.user
end