A Haskell list can have a head except for empty, circular, single-element, or headless lists. An expression having the type of a pair (2-tuple) can have either 1 or 2 possible values. In Haskell, pattern matching and the where clause can be used together.