123456789101112131415161718192021222324open!Basetypecustom={type_id:int;data:Bytes.t}[@@derivingsexp]typet=|Nil|Integerofint|Int64ofInt64.t|UInt64ofInt64.t|Booleanofbool|Floatingoffloat|Arrayoftlist(* The specification doesn't say what to do in the case of duplicate keys. Also,
these objects are currently mutable, so [Map.t] might not be the best idea.
*)|Mapof(t*t)list|Stringofstring|BinaryofBytes.t|Extensionofcustom[@@derivingsexp]