Very nice explanation of algebraic data type. More