Hi > suma [] = 0 > suma (h:t) = h + suma t > > suma [] = 0 > suma h:t = h + suma t Infix operators bind less tightly than function application, so the compiler sees: (suma h) : t = h + (suma t) Hence the compiler gets confused. Thanks Neil