> >     module Foo
> >
> >     foo x = bar x
> >       where
> >       bar x = ...
> >
> > generates
> >
> >     Foo.Foo.Prelude.200.bar v217 v218 = ...

I don't see where the Prelude bit came from, but I'm assuming that the
second "Foo" was a typo for lower-case "foo".

> so why not Foo.200_bar, which is still unique, and entirely unambiguous.

FWIW, my preference would be to keep a reference to the enclosing
function name in the local name, e.g.

       Foo.foo.200.bar

This style has the advantage of remaining decipherable by the careful
reader.  "bar" is a local definition within "Foo.foo", and because there
are potentially many different local "bar"s within different clauses of
"Foo.foo", the number disambiguates.  Even better if the number was
essentially a line number or similar (clause number?), to make it even
more readable.

Regards,
    Malcolm
_______________________________________________
Yhc mailing list
Yhc@haskell.org
http://www.haskell.org/mailman/listinfo/yhc

Reply via email to