GHC's lexer (function Lex.mk_var_token) treats names starting with
an underscore followed by an uppercase letter as a constructor (conid)
and not as a variable (varid):

   module Foo where
   data T = _ThisWorksAlthoughItShouldNot
   _ThisShouldWorkButItDoesNot = '?'

A comment in the source code tells something about syntax in interface
files, but I don't have clue... Could somebody (SimonM?) explain why
this is done that way?

Cheers,
   Sven
-- 
Sven Panne                                        Tel.: +49/89/2178-2235
LMU, Institut fuer Informatik                     FAX : +49/89/2178-2211
LFE Programmier- und Modellierungssprachen              Oettingenstr. 67
mailto:[EMAIL PROTECTED]            D-80538 Muenchen
http://www.informatik.uni-muenchen.de/~Sven.Panne

Reply via email to