An issue I’ve found in the OCaml space and databases is that most of the existing database libraries either don’t support Postgres version 14 and higher, or they run on the PostgreSQL library, which is a C-binding library. type user = { name : string ; id : int ; some_int64 : int64 ; some_int32 : int32 ; some_float : float ; some_bool : bool ; pet_name : string option ; pets : string list ; pets_array : string array ; } [ @@ deriving deserialize ] let u = match Serde_postgres . type user = { name : string ; id : int ; some_int64 : int64 ; some_int32 : int32 ; some_float : float ; some_bool : bool ; pet_name : string option ; pets : string list ; pets_array : string array ; } [ @@ deriving deserialize ] type users = user list [ @@ deriving deserialize ] let ( ) = Riot .