o [x]
-- (x:y:[]) poderia ser escrito como [x,y]
-- (x:y:_) não poderia ser escrito de outra forma, devido ao :_

-- Uma versão recursiva de length
length' :: (Num b) => [a] -> b
length' [] = 0
length' (_:xs) = 1 + length' xs
--
length' :: (Num b) => [a] -> b
length' [] = 0
length' [] = 0