1. 29 Jun, 2012 2 commits
  2. 27 Jun, 2012 5 commits
    • Ian Lynagh's avatar
      30b5ba9b
    • Ian Lynagh's avatar
      Add some more Integer rules; fixes #6111 · c7a8941b
      Ian Lynagh authored
      c7a8941b
    • chak@cse.unsw.edu.au.'s avatar
    • chak@cse.unsw.edu.au.'s avatar
    • Simon Peyton Jones's avatar
      Add silent superclass parameters (again) · aa1e0976
      Simon Peyton Jones authored
      Silent superclass parameters solve the problem that
      the superclasses of a dicionary construction can easily
      turn out to be (wrongly) bottom.  The problem and solution
      are described in
         Note [Silent superclass arguments] in TcInstDcls
      
      I first implemented this fix (with Dimitrios) in Dec 2010, but removed
      it again in Jun 2011 becuase we thought it wasn't necessary any
      more. (The reason we thought it wasn't necessary is that we'd stopped
      generating derived superclass constraints for *wanteds*.  But we were
      wrong; that didn't solve the superclass-loop problem.)
      
      So we have to re-implement it.  It's not hard.  Main features:
      
        * The IdDetails for a DFunId says how many silent arguments it has
      
        * A DFunUnfolding describes which dictionary args are
          just parameters (DFunLamArg) and which are a function to apply
          to the parameters (DFunPolyArg).  This adds the DFunArg type
          to CoreSyn
      
        * Consequential changes to IfaceSyn.  (Binary hi file format changes
          slightly.)
      
        * TcInstDcls changes to generate the right dfuns
      
        * CoreSubst.exprIsConApp_maybe handles the new DFunUnfolding
      
      The thing taht is *not* done yet is to alter the vectoriser to
      pass the relevant extra argument when building a PA dictionary.
      aa1e0976
  3. 26 Jun, 2012 2 commits
  4. 25 Jun, 2012 7 commits
  5. 23 Jun, 2012 1 commit
    • Ian Lynagh's avatar
      Remove the ID Monad · 96f21260
      Ian Lynagh authored
      We don't use it, and if we want an identity Monad then there's one
      in transformers:Data.Functor.Identity that we could use.
      96f21260
  6. 22 Jun, 2012 15 commits
  7. 21 Jun, 2012 5 commits
  8. 20 Jun, 2012 3 commits