Karl-Filip wrote (on 22 Oct):
| What I'm driving at is this: I propose that top level
| bindings shadow imported names and that qualified names can
| not be used to refer to declarations in the same module.
[His message had a lot more in it, of course, but this is the nub.]
There followed a
Fri, 2 Nov 2001 09:30:37 -0800, Simon Peyton-Jones [EMAIL PROTECTED] pisze:
| They are also different in spirit from the rules for
| instance declarations in section 4.3.2 where the binding
| occurrences for the names of the methods must be qualified if
| the unqualified method name is
Hi all!
I have been thinking about the scoping issues for imported names. Of
course, this musing is ispired by the formal static semantics I have
been working on, but it is also prompted by the revised Haskell report.
Section 5.5.2 relates to name clashes and has an interesting example
towards
Karl-Filip Faxen wrote
Section 5.5.2 relates to name clashes and has an interesting example
towards the end:
module F where
sin :: Float - Float
sin x = (x::Float)
f x = Prelude.sin (F.sin x)
where the type signature refers to the local sin rather than the imported
Hello again,
Wolfgang wrote
The Haskell report seems to be inconsistent here (once again). In the
beginning of section 5.3 it says
Imported names serve as top level declarations: they scope over the entire
body of the module but may be shadowed by local NON-TOP-LEVEL bindings.
Hello!
Well, it's not that simple currently. Name clashes are only illegal if they
lead to unresolvable references. Thus if we have
Intricate, indeed. I didn't expect to be able to define a function
which I cannot reference with its unqualified name.
What I'm driving at is this: I