[Haskell-cafe] strange error message
Semen Trygubenko / Семен Тригубенко
semen at trygub.com
Thu Mar 27 12:09:25 UTC 2014
On Thu, Mar 27, 2014 at 11:28:33AM +0000, Ivan Perez wrote:
> 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?
Prelude> :t head
head :: [a] -> a
Prelude> :t length
length :: [a] -> Int
Prelude> :t (length . head)
(length . head) :: [[a]] -> Int
r is of type Int.
[Apologies — I thought the above is deducable from the error message I've included (below).]
Clearly, this is a type error as Int is passed in where [[a]] is expected.
However, my question is relating to the middle bit of the error message,
(The function `length . head' is applied to one argument,
but its type `[[a2]] -> Int' has only one)
> On 27 March 2014 02:36, Semen Trygubenko / Семен Тригубенко <
> semen at 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 at haskell.org
> > http://www.haskell.org/mailman/listinfo/haskell-cafe
Семен Тригубенко http://trygub.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 196 bytes
Desc: not available
More information about the Haskell-Cafe