Neil Mitchell wrote:

Hmm, now I'm changing my mind. Those examples make me think that ; is
more sensible - since otherwise you are really screwing with small
differences in what makes an operator or not - I especially dislike
the "leading digits" rule. I would rather that Core didn't care too
much about operator vs function differences, but these two examples
show it will have to. Therefore I think ; makes more sense.

Okay. As a little side note, you won't believe how nhc98 stores local functions (which I've just discovered)

   module Foo

   foo = ..
     where bar = ...

The name Foo.Foo.Prelude.200.bar is actually stored in nhc98 as an instance dictionary!

    - defined in the module Foo
    - on the datatype Prelude.200, i.e. the two hundred tuple!?!
    - to the class(!?) Foo.Foo.bar

Yes, really. Thus currently my code encodes the name as

   Foo;Prelude.(,,,,, ... ,,,,,,,,);Foo.Foo.bar

The fiddly bit is going to be deciding that this isn't an instance dictionary but is actually a locally defined function ... *sigh*

If we use ; we can also change it so:

module Foo where

foo = ...
   where bar = ...

Foo;foo.bar - which is exactly what you would want, to keep as much
info as possible.
>
> Of course, this change could be done sometime in the future.

Yes this would be ideal, but unfortunately it would involve some extensive changes as currently nhc98 doesn't store that much information about what a function was defined inside.

Cheers :-)


Tom
_______________________________________________
Yhc mailing list
Yhc@haskell.org
http://www.haskell.org/mailman/listinfo/yhc

Reply via email to