In Haskell , variables are much like the variables in mathematical equations. They may need to satisfy certain rules , but they are not counters or containers in the style of imperative programming. Just to get headed in the right way of thinking , consider some linear equations like the ones below as an inspiration