In Haskell, data types can have arguments just like functions. Take the Maybe type for example.
Maybe is a very useful type which allows us to represent the idea of failure, or the possiblity thereof. In other words, if there is a possibility that a computation will fail, we use the Maybe type ther...