These are specific Interface used for determining what types are allowed for a function
square Num => a -> aSpecifies that the Generic a is of Num type
Definining
data Colour = Red | Green | BlueThe specific Haskell Data Constructor are defined independently.