In Haskell, the objects that we perform calculations on are called expressions,
and the objects that result from a calculation are called values. \
It is helpful to think of a value just as expression on which no more calculation can be carried out.
You can think of types as set of expressions (or values) in which
members of same set have much in common.
Chapter 1