Better Algebraic Data Type example