converteInt :: Int -> String
converteInt a = aux a ""
where aux :: Int -> String -> String
aux a ls |(a==0) = ls
|((mod a 10)==0)= aux (div a 10) ("ZERO "++ ls)
|((mod a 10)==1)= aux (div a 10) ("UM "++ ls)
|((mod a 10)==2)= aux (div a 10) ("DOIS "++ ls)
|((mod a 10)==3)= aux (div a 10) ("TRES "++ ls)
|((mod a 10)==4)= aux (div a 10) ("QUATRO "++ ls)
|((mod a 10)==5)= aux (div a 10) ("CINCO "++ ls)
|((mod a 10)==6)= aux (div a 10) ("SEIS "++ ls)
|((mod a 10)==7)= aux (div a 10) ("SETE "++ ls)
|((mod a 10)==8)= aux (div a 10) ("OITO "++ ls)
|((mod a 10)==9)= aux (div a 10) ("NOVE "++ ls)
Aqui está, identa tudo bem para nao dar erros.
P.S. A funcao corta os zeros do inicio dos numeros. ex: 000202 vai dar "DOIS ZERO DOIS ", tenta resolver se for necessario