+ | [ "list"; "("; t = ptype; ")" -> <:expr< Wrappi_types.TList $t$ >> ]
+ | [ "nullable"; "("; t = ptype; ")" -> <:expr< Wrappi_types.TNullable $t$ >> ]
+ | [ "string" -> <:expr< Wrappi_types.TString >> ]
+ | [ "struct"; name = LIDENT -> <:expr< Wrappi_types.TStruct $str:name$ >> ]
+ | [ "uint32" -> <:expr< Wrappi_types.TUInt32 >> ]
+ | [ "uint64" -> <:expr< Wrappi_types.TUInt64 >> ]
+ (* union XXX *)
+ | [ name = LIDENT -> <:expr< Wrappi_types.TTypedef $str:name$ >> ]