• Reflection: algebraic data types for mortals