Skip to content
  • Simon Marlow's avatar
    Generalise Package Support · 61d2625a
    Simon Marlow authored
    This patch pushes through one fundamental change: a module is now
    identified by the pair of its package and module name, whereas
    previously it was identified by its module name alone.  This means
    that now a program can contain multiple modules with the same name, as
    long as they belong to different packages.
    
    This is a language change - the Haskell report says nothing about
    packages, but it is now necessary to understand packages in order to
    understand GHC's module system.  For example, a type T from module M
    in package P is different from a type T from module M in package Q.
    Previously this wasn't an issue because there could only be a single
    module M in the program.
    
    The "module restriction" on combining packages has therefore been
    lifted, and a program can contain multiple versions of the same
    package.
    
    Note that none of the proposed syntax changes have yet been
    implemented, but the architecture is geared towards supporting import
    declarations qualified by package name, and t...
    61d2625a