Theory
A product type bundles multiple values together (โandโ data).
Tuples
type Point = (Double, Double)Records
data Circle = Circle
{ cx :: Double
, cy :: Double
, r :: Double
}Patternโmatch or use field selectors: r circ.
Semantics
If A has values and B has values, then has .
Implementation
Constructors combine, patterns split:
area :: Circle -> Double
area (Circle _ _ rad) = pi * rad * rad