We said applying functions to arguments is the basic method of computation in Haskell – the building blocks of Haskell programs. In that sense, expressions in Haskell would be what those building blocks are made of. Expressions can represent some primitive values, e.g. numbers, characters, or booleans (
False), and in that case, they are irreducible expressions, meaning they cannot be further simplified. On the other hand, there are reducible expressions, which can be evaluated to their final irreducible form.