Custom Data Type

Quantifying over our own type

Suppose we have our own data type such as

data Person = P {
  age :: Int,
  firstName :: String,
  surname :: String,
  gender :: Char
} deriving Show