We saw that every data type is inhabited by a value ⊥ pronounced "bottom". It is very important in a non-strict language such
as Haskell to represent how much knowledge you have about a value. You can either know exactly what the value is, know
only a part of it, or know nothing at all. Bottom represents the latter, but you could as well only know that a list starts
with 1, i.e. 1 : ⊥.
In fact, all data types in Haskell respect an approximation function ⊑, where x ⊑ y means "x is an approximation
of y". For example with booleans, x ⊑ y iff ⇔ x ≡ ⊥ or x ≡ y in other words either you don't know anything about a
particular boolean, or you know exactly what it is. This approximation ordering is important when reasoning about recursive
algorithms, which is why it is important to understand the notion of "nothingness" in Haskell.