1. 29 Oct, 2009 5 commits
  2. 28 Oct, 2009 5 commits
    • simonpj@microsoft.com's avatar
      Drop unused import · 3f888bd9
      simonpj@microsoft.com authored
    • simonpj@microsoft.com's avatar
      Tidy up the parsing of comprehensions and improve locations · 26caccd3
      simonpj@microsoft.com authored
      While I was dealing with 'rec' statements I did this tidy-up
    • simonpj@microsoft.com's avatar
      Add 'rec' to stmts in a 'do', and deprecate 'mdo' · f04dead9
      simonpj@microsoft.com authored
      The change is this (see Trac #2798).  Instead of writing
        mdo { a <- getChar
            ; b <- f c
            ; c <- g b
            ; putChar c
            ; return b }
      you would write
        do { a <- getChar
           ; rec { b <- f c
                 ; c <- g b }
           ; putChar c
           ; return b }
      That is, 
        * 'mdo' is eliminated 
        * 'rec' is added, which groups a bunch of statements
          into a single recursive statement
      This 'rec' thing is already present for the arrow notation, so it  
      makes the two more uniform.  Moreover, 'rec' lets you say more
      precisely where the recursion is (if you want to), whereas 'mdo' just
      says "there's recursion here somewhere".  Lastly, all this works with
      rebindable syntax (which mdo does not).
      Currently 'mdo' is enabled by -XRecursiveDo.  So we now deprecate this
      flag, with another flag -XDoRec to enable the 'rec' keyword.
      Implementation notes:
        * Some changes in Lexer.x
        * All uses of RecStmt now use record syntax
      I'm still not really happy with the "rec_ids" and "later_ids" in the
      RecStmt constructor, but I don't dare change it without consulting Ross
      about the consequences for arrow syntax.
    • simonpj@microsoft.com's avatar
    • simonpj@microsoft.com's avatar
      Trivial improvement to mkForAllTy · 6582768f
      simonpj@microsoft.com authored
  3. 27 Oct, 2009 1 commit
  4. 26 Oct, 2009 1 commit
    • simonpj@microsoft.com's avatar
      Add a coercion optimiser, to reduce the size of coercion terms · 48196c3c
      simonpj@microsoft.com authored
      Coercion terms can get big (see Trac #2859 for example), so this
      patch puts the infrastructure in place to optimise them:
        * Adds Coercion.optCoercion :: Coercion -> Coercion
        * Calls optCoercion in Simplify.lhs
      The optimiser doesn't work right at the moment, so it is 
      commented out, but Tom is going to work on it.
  5. 23 Oct, 2009 4 commits
  6. 20 Oct, 2009 2 commits
    • simonpj@microsoft.com's avatar
      Fix Trac #3590: a nasty type-checker bug in left/right sections · 0cffd31b
      simonpj@microsoft.com authored
      The bug related to the fact that boxyUnify (now) returns a coercion,
      which was simply being ignored.  (TcExpr is clearly not warning-free
      wrt the unused-monadic-bind thing!)
      Anyway, it's fine now.  I added a test case to the test suite.
      MERGE to 6.12 please.
    • simonpj@microsoft.com's avatar
      Allow -ticky and -prof together · 8277f2dc
      simonpj@microsoft.com authored
      The two used to be incompatible, but they aren't any longer.
      In fact, -ticky should not be a 'way' any more, and doing that
      is on Simon M's todo list, but this patch takes us a little
      step closer.
      I'm not sure this is worth merging to the 6.12 branch.
  7. 25 Oct, 2009 1 commit
  8. 24 Oct, 2009 1 commit
  9. 23 Oct, 2009 5 commits
  10. 20 Oct, 2009 2 commits
  11. 14 Oct, 2009 2 commits
  12. 20 Oct, 2009 5 commits
  13. 15 Oct, 2009 6 commits