data Date = -- name of type DMY -- name of constructor Int -- day Int -- month Integer -- year deriving Show data Person = -- name of type Person -- constructor name can be same as type name String -- first name String -- last name Bool -- married Date -- birthday deriving Show today = DMY 11 10 2021 myself = Person "Rene" "Thiemann" True today data Brand = Audi | BMW | Fiat | Opel deriving Show data Vehicle = Car Brand Double -- horsepower | Bicycle | Truck Int -- number of wheels deriving Show data Expr = Number Integer | Plus Expr Expr | Negate Expr deriving Show data List = Empty | Cons Integer List deriving Show