You can now evaluate these expressions. It is very important to keep the expression language and the type language in Haskell separated. The data declaration above defines the type constructor Color. Color is found ONLY in the type language - it can not be part of an expression.
Color is meaningless.
Data constructors can be defined ONLY in a data declaration. In the next example, Point is a type constructor and Pt is a data constructor. Point takes one argument and Pt takes two. A data constructor like Pt is really just an ordinary function except that it can be used in a pattern. That is, Pt is a function which takes two arguments with the same arbitrary type and returns a value containing the two argument values.