- We defined
`Product1`with one data constructor`Product1 :: Bool -> Product1`.`Product1`? Since it takes Bool, it can have two values`Product1 True`and`Product1 False`. This is the simplest product type that we have defined.

- Next, we defined a data type
`Product2`*.*`Product2`'s constructor takes two Bool values. For`Product2`, we can construct four values. Please refer to the following table:**Product2 fields****Bool****Bool**`Product2``True``True``Product2``True``False``Product2``False``True``Product2``False``True`Note that we have four values for

`Product2`. Also, note that we constructed`Product2`by adding one more`Bool`field to`Product1`. For each possible value of`Product1`, we have two possible values ...