Reading through a book I came across Haskell Bool Type which is
data Bool = True | False
As I understand in this case True and False are values and the expression of below type is valid
c = True
Later on, when I wanted to create a new type I forgot to name the Value constructor and created the following type.
data Cartesian2D = Double Double
In this case, Haskell (GHCI) did not complain.
But when I tried to construct a value like
x = 1.0 2.0
and
x = Double Double
in both cases, Haskell returned an error.
In this case,
Is the type Cartesian2D valid?
if the type is not valid, why did Haskell not complain when I was constructing the type? but only informed me while constructing a value of the type.