[Haskell-cafe] strange error message

Semen Trygubenko / Семен Тригубенко semen at trygub.com
Thu Mar 27 12:09:25 UTC 2014


Hi Ivan,

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
Prelude> 

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,
namely:

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

Many thanks,
S.




> 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
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20140327/b9f6e72d/attachment.sig>


More information about the Haskell-Cafe mailing list