
Dear All I have just started learning Haskell, using the O'Reilly book Real World Haskell [1]. I'm finding it a very exciting language, and I'm working my way painstakingly through the book (I'm up to the exercises at the end of Chapter 3). I have a query based on some code from the book. This question has been asked on the book web site [2], but no answer. I have also Googled about and scanned the documentation. So, here is some code (quoted from [3]): two implementations of a function to return the second element of a list. I have commented out the type signatures. -- file: rwh_examples2/ch03/MySecond.hs -- safeSecond :: [a] -> Maybe a safeSecond [] = Nothing safeSecond xs = if null (tail xs) then Nothing else Just (head (tail xs)) -- tidySecond :: [a] -> Maybe a tidySecond (_:x:_) = Just x tidySecond _ = Nothing My query concerns the inferred types of these functions --- the types inferred when the type signatures are commented out. Here's a ghci session: Prelude> :load seconds.hs [1 of 1] Compiling Main ( seconds.hs, interpreted ) Ok, modules loaded: Main. *Main> *Main> :type safeSecond safeSecond :: [a] -> Maybe a *Main> *Main> :type tidySecond tidySecond :: [t] -> Maybe t *Main> Why is safeSecond type [a] -> Maybe a, and tidySecond type [t] -> Maybe t? I mean why does one use "a" and the other "t"? What does it mean? If I change the order of the two functions in the source file, safeSecond still uses "a" and tidySecond still uses "t". Can anyone help, or point me to the right place in the documentation? In the meantime, if I find out from elsewhere I'll report back here. Thanks and best wishes Ivan [1] http://book.realworldhaskell.org/ [2] http://book.realworldhaskell.org/read/defining-types-streamlining-functions.... [3] http://book.realworldhaskell.org/read/defining-types-streamlining-functions.... -- ============================================================ Ivan A. Uemlianin Speech Technology Research and Development ivan@llaisdy.com www.llaisdy.com llaisdy.wordpress.com www.linkedin.com/in/ivanuemlianin "Froh, froh! Wie seine Sonnen, seine Sonnen fliegen" (Schiller, Beethoven) ============================================================