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