Mon Aug 11 05:25:23 PDT 2008 [EMAIL PROTECTED]
* Fix Trac #2412: type synonyms and hs-boot recursion
Max Bolingbroke found this awkward bug, which relates to the way in
which hs-boot files are handled.
--> HEADS UP: interface file format change: recompile everything!
When we import a type synonym, we want to *refrain* from looking at its
RHS until we've "tied the knot" in the module being compiled. (Reason:
the type synonym might ultimately loop back to the module being compiled.)
To achieve this goal we need to know the *kind* of the synonym without
looking at its RHS. And to do that we need its kind recorded in the interface
file.
I slightly refactored the way that the IfaceSyn data constructor
fields work, eliminating the previous tricky re-use of the same field
as either a type or a kind.
See Note [Synonym kind loop] in TcIface
M ./compiler/iface/BuildTyCl.lhs -4 +5
M ./compiler/iface/IfaceSyn.lhs -9 +12
M ./compiler/iface/MkIface.lhs -5 +6
M ./compiler/iface/TcIface.lhs -23 +44
M ./compiler/typecheck/TcEnv.lhs -10 +19
M ./compiler/typecheck/TcRnDriver.lhs -22 +19
M ./compiler/typecheck/TcTyClsDecls.lhs -3 +4
M ./compiler/vectorise/VectType.hs +1
View patch online:
http://darcs.haskell.org/ghc/_darcs/patches/20080811122523-1287e-7aae7afc69a8e747a9d22a22e146b5e811767a7a.gz
_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc