Hi,

My two cents:

What is the type of head?
What is the type of length?
What is the type of length.head?
What is the type of r?

Best

Ivan


On 27 March 2014 02:36, Semen Trygubenko / Семен Тригубенко <semen@trygub.com> wrote:
Dear Haskell-Cafe,

Every now and then I get error messages when compiling Haskell code :).
Sometimes of the sort:

test.hs:10:15:
    Couldn't match type `[[a2]]' with `Int'
    Expected type: Int -> Int
      Actual type: [[a2]] -> Int
    The function `length . head' is applied to one argument,
    but its type `[[a2]] -> Int' has only one
    In the first argument of `(==)', namely `(length . head) r'
    In the expression: (length . head) r == 0

Is the middle part of the error message

(The function `length . head' is applied to one argument,
but its type `[[a2]] -> Int' has only one)

expected to be confusing like that sometimes?

The line in question, FWIW, is

Right r -> if (length . head) r == 0

It appears as one of the two entries in a case statement, pattern matching on Right constructor.

Many thanks,
S.



--
Семен Тригубенко http://trygub.com

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe