[Hugs-users] Re: [Haskell-cafe] Writing functions in Haskell.

Daniel Fischer daniel.is.fischer at web.de
Fri Apr 29 12:56:28 EDT 2005


Am Freitag, 29. April 2005 18:01 schrieb Ross Paterson:
> On Thu, Apr 28, 2005 at 09:22:15PM -0400, Cale Gibbard wrote:
> > The second problem arises from hugs not doing the same thing as ghci
> > with respect to looking up qualified variable names (that is, those
> > with the module name specified, in this case, the standard module
> > Char). You can tell hugs to also load the Char module on top of
> > whatever code you have loaded by using the command ":also Char", after
> > which the prompt should look like
> > Char>
> > and you can try
> > toUpper 'a'
>
> Might as well use :load -- in both case Char becomes the new current
> module, making the old current module inaccessible.

There is a difference, though. Compare

Test> :l Char
Char> :n my_map
ERROR - No names selected

and

Test> :a Char
Char> :n my_map
Test.my_map
(1 names listed)

So with :a(lso) the old module remains in sight for :n(ames) - and for :i in 
qualified form. Unfortunately I haven't found a way to use them, Hugs (Nov. 
2003) in general refuses qualified names, though with some rather weird 
behaviour:

Prelude> :l Test
Test> :a Char
Char> Prelude.map toUpper "buh"
"BUH"
Char> Data.Char.toUpper 'u'
'U'
Char> :i Test.my_map
my_map :: (a -> b) -> [a] -> [b]

Char> Data.Char.toUpper 'u'
ERROR - Undefined qualified variable "Data.Char.toUpper"
Char> Prelude.map toUpper "buh"
ERROR - Undefined qualified variable "Prelude.map"

How can it be that Hugs knows these qualified names before I ask about 
Test.my_map but not afterwards?

Puzzled,
Daniel



More information about the Hugs-Users mailing list