ghci 'Not in scope:' message

user181351 picture user181351 · Mar 24, 2011 · Viewed 28.9k times · Source

I'm going through the 'Learn you a Haskell' tutorial and I am at this part:

lucky :: (Integral a) => a -> String

When I try to execute this line I get:

<interactive>:1:1: Not in scope: `lucky'

What am I doing wrong?

Answer

Yasir Arsanukaev picture Yasir Arsanukaev · Mar 24, 2011

This is not a function code, it's function signature which can only be saved in a module along with function definition and the be loaded to GHCi.

This signature means that you're going to define a function lucky which gets an Integer and returns a String.

However if you're composing your functions using GHCi as interactive interpreter, you can let Haskell infer your function's type, e. g.:

ghci> let lucky x = show (x + 1)
ghci> :t lucky
lucky :: (Num a) => a -> String