reactive macros: ADT support