generate typedefs