Hi

I am looking into the ghc source code for the first time in order to see if I can understand why type synonyms are not correctly parsed with the ghc extension for infix :-*-: etc.

I note that the following is present in the file Parser.y in ghc-6.4.20050216/ghc/compiler/parser and I assume it here ghc is parsing the type declarations?

tycl_decl :: { LTyClDecl RdrName }
: 'type' syn_hdr '=' ctype
-- Note ctype, not sigtype.
-- We allow an explicit for-all but we don't insert one
-- in type Foo a = (b,b)
-- Instead we just say b is out of scope
{ sL (comb2 $1 $>) $ let (tc,tvs) = $2 in TySynonym tc tvs $4 }


on the next line happy is probably given instructions how to parse data declarations?

| 'data' tycl_hdr constrs deriving
{ L (comb4 $1 $2 $3 $4)
(mkTyData DataType $2 Nothing (reverse (unLoc $3)) (unLoc $4)) }


Now, can someone explain what happens here, e.g. what is the difference between parsing of data and type synonyms?

I guess (!) that the handling of infixes is merely an issue in the parser, and would not affect much else in ghc?

Johan Glimming.

_______________________________________________
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

Reply via email to