minor errors in Haskell 2010 report
ramana at member.fsf.org
Thu Aug 23 18:09:00 CEST 2012
On Thu, Aug 23, 2012 at 5:01 PM, Simon Marlow <marlowsd at gmail.com> wrote:
> On 23/08/2012 16:51, Ramana Kumar wrote:
>> On Thu, Aug 23, 2012 at 4:43 PM, Simon Marlow <marlowsd at gmail.com
>> <mailto:marlowsd at gmail.com>> wrote:
>> The current text seems clear to me. This is the *definition* of
>> what is exported by module M, so referring to what is exported by
>> module M within its own definition would be very confusing.
>> To clarify, this is not the definition of what is exported by module M;
>> rather, it is the definition of what is exported by some other module
>> that includes "module M" in its export list.
> Yes sorry, I got slightly mixed up there. But the current text still
> seems clear to me. You said:
> > It is not clear that "in scope" here really means "in scope and exported
> by module M".
> There are two cases:
> Either M is the current module, in which case we should not refer
> recursively to the export list in the definition of the export list, or
Yes, in this case you are right not to refer recursively.
> M is not the current module, in which case the only way that an entity
> could be in scope in the current module is if it was exported by M and
> subsequently imported by the current module, so adding "exported by module
> M" is superfluous.
In this case, what you said is not quite correct: an entity could be in
scope in the current module if it was defined in the current module, or if
it was imported from some other module (not M). These are the two kinds of
entity I thought of when I first read the sentence, and was expecting
clarification that only ones imported from M are to be considered.
> The current definition is succinct and does the right thing, without
> having to resort to separating the two cases explicitly. Perhaps it could
> do with a word or two of explanation in the text, though.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Haskell-prime