1. 11 Aug, 2008 6 commits
    • simonpj@microsoft.com's avatar
      Fix Trac #2412: type synonyms and hs-boot recursion · 1fa3580c
      simonpj@microsoft.com authored
      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
      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
    • simonpj@microsoft.com's avatar
      Fix Trac #2506: infix assert · 96438b89
      simonpj@microsoft.com authored
    • simonpj@microsoft.com's avatar
      Use do-notation · 9ecd4031
      simonpj@microsoft.com authored
    • simonpj@microsoft.com's avatar
      Fix Trac #2494: tcSimplifyRuleLhs · 4016ee2f
      simonpj@microsoft.com authored
      tcSimplifyRuleLhs is a cut-down constraint simplifier, intended for
      use in RULE left-hand-sides.  But it was written before implication
      constraints, and the exmaple of this bug report shows that when higher
      rank types are involved we need to be a bit cleverer.
      The whole business of simplifying constraints on rule LHSs is a bit
      of a hack; but for a good reason.  See the comments with tcSimplifyRuleLhs.
      This patch at least cures the crash.
    • simonpj@microsoft.com's avatar
      Make comparison on equalities work right (ie look at the types) · 7539ed8c
      simonpj@microsoft.com authored
      This patch makes
      	(s1~t1) == (s2~t2) iff s1==s2, t1==t2
      The comparison and equality instances for Insts are really only
      used in making the AvailEnv in TcSimplify, which equalities are
      never put into, which is why we've gotten away with this for so long.
      But I'm now using 'nub' in the error messages for equalities,
      and in any case it makes sense to have the right equality!
    • simonpj@microsoft.com's avatar
  2. 09 Aug, 2008 1 commit
    • simonpj@microsoft.com's avatar
      Fix Trac #2486: restore the specialiser to a working state · a0a541a8
      simonpj@microsoft.com authored
      In improving the specialiser's data reprsentaion, thus
        Mon Apr 28 16:57:11 GMT Daylight Time 2008  simonpj@microsoft.com
        * Fix Trac #1969: perfomance bug in the specialiser
      I got the sense of a pair of filter functions back to front.
      As a result, almost all specialisation opportunities were being
      filtered out, and no specialisations were being generated.
      Fortunately, dolio notice and reported Trac #2486.  The fix is
      simple: put the filters the right way roud.
  3. 10 Aug, 2008 13 commits
  4. 07 Aug, 2008 3 commits
  5. 09 Aug, 2008 1 commit
  6. 07 Aug, 2008 3 commits
  7. 31 Jul, 2008 13 commits