Introduction to Algebraic Data Types in Haskell
Constructor Functions vs Normal Functions
Constructor functions are the kinds of functions used to create types and values.
Constructor functions are different from normal functions in the sense that once they have had their arguments applied they are fully evaluated.
They have no equation or body so to speak. For example the value constructor Just 5 is a value just like 5 is except it has a different type.