[Haskell-beginners] Partial Loading and Debugging with GHCI

aditya siram aditya.siram at gmail.com
Thu Apr 16 13:34:59 EDT 2009

Hi all,
I'm curious as to how one would go about debugging the following program:

hello :: String
hello = "Hello"

world :: String
world = "World"

number :: Int
number = 1

helloWorld :: String
helloWorld = hello ++ " " ++ world

-- This fails!
bad :: String
bad = hello ++ number

Predictably once I load this program into ghci I get the following error:
[1 of 1] Compiling Main             ( TestCode.hs, interpreted )

    Couldn't match expected type `[Char]' against inferred type `Int'
    In the second argument of `(++)', namely `number'
    In the expression: hello ++ number
    In the definition of `bad': bad = hello ++ number
Failed, modules loaded: none.

At this point what I want to do is to query the output type of the different
functions like so:
> :t hello
but GHCI won't let me because the program hasn't been loaded.

I would then have to comment out 'bad', reload the program and query output
types to my hearts content. This is fine for a small program, but when I
have functions are downriver from 'bad', it gets extremely cumbersome. Is
there a way to load a file such that functions that compile stay loaded in
the interpreter even if something else fails?

Thanks ...
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/beginners/attachments/20090416/1f21ec49/attachment.htm

More information about the Beginners mailing list