padrões é importante. Os mais genéricos devem vir por último.

-- Uma definição recursiva de fatorial
factorial :: (Integral a) => a -> a
factorial 0 = 1
factorial n = if n >
factorial :: (Integral a) => a -> a
factorial 0 = 1
factorial 0 = 1