updated macros for inductive types