1. 12 Dec, 2011 1 commit
  2. 26 Nov, 2011 1 commit
  3. 25 Nov, 2011 1 commit
  4. 24 Nov, 2011 4 commits
  5. 22 Nov, 2011 1 commit
  6. 17 Nov, 2011 1 commit
  7. 16 Nov, 2011 3 commits
  8. 15 Nov, 2011 1 commit
  9. 09 Nov, 2011 1 commit
  10. 07 Nov, 2011 1 commit
  11. 04 Nov, 2011 1 commit
  12. 24 Oct, 2011 1 commit
  13. 22 Oct, 2011 3 commits
  14. 04 Oct, 2011 1 commit
  15. 27 Sep, 2011 2 commits
  16. 09 Sep, 2011 1 commit
  17. 06 Sep, 2011 1 commit
    • batterseapower's avatar
      Implement -XConstraintKind · 9729fe7c
      batterseapower authored
      Basically as documented in http://hackage.haskell.org/trac/ghc/wiki/KindFact,
      this patch adds a new kind Constraint such that:
      
        Show :: * -> Constraint
        (?x::Int) :: Constraint
        (Int ~ a) :: Constraint
      
      And you can write *any* type with kind Constraint to the left of (=>):
      even if that type is a type synonym, type variable, indexed type or so on.
      
      The following (somewhat related) changes are also made:
       1. We now box equality evidence. This is required because we want
          to give (Int ~ a) the *lifted* kind Constraint
       2. For similar reasons, implicit parameters can now only be of
          a lifted kind. (?x::Int#) => ty is now ruled out
       3. Implicit parameter constraints are now allowed in superclasses
          and instance contexts (this just falls out as OK with the new
          constraint solver)
      
      Internally the following major changes were made:
       1. There is now no PredTy in the Type data type. Instead
          GHC checks the kind of a type to figure out if it is a predicate
       2. There is now no AClass TyThing: we represent classes as TyThings
          just as a ATyCon (classes had TyCons anyway)
       3. What used to be (~) is now pretty-printed as (~#). The box
          constructor EqBox :: (a ~# b) -> (a ~ b)
       4. The type LCoercion is used internally in the constraint solver
          and type checker to represent coercions with free variables
          of type (a ~ b) rather than (a ~# b)
      9729fe7c
  18. 05 Sep, 2011 1 commit
  19. 02 Sep, 2011 1 commit
    • Simon Peyton Jones's avatar
      Backtrack on the wierd special case of data family exports · f5c0851a
      Simon Peyton Jones authored
      I had second thoughts on the "data family export" question.
      Rather than add a wierd special case it seems better to be
      simple and consistent.  So this patch
      
       * Reverts to the simple behaviour:
           module M where { ... }
         exports only what is defined in M, ie NOT any
         imported data families.
         See Note [Exports of data families] in RnNames
      
      * Documents this behaviour in the user manual, and clarifies
        what was there before.
      f5c0851a
  20. 01 Sep, 2011 1 commit
    • Simon Peyton Jones's avatar
      Two small further extensions to associated types · c27df60d
      Simon Peyton Jones authored
      a) Allow multiple AT decls for in a single instance
      b) Allow a free type parameter to be instantiated
      
      Example   class C a where
                  type T a x :: *
      
      	  data A
                data B
                instance C Int where
                  type T Int A = Int
                  type T Int B = Bool
      
      There is no reason to prohibit this, and as we move
      towards a proper kind system it may even be useful.
      
      I also updated the documentation to cover this change
      and the previous one of allowing free type parameters
      for associated families.
      c27df60d
  21. 12 Aug, 2011 1 commit
  22. 03 Aug, 2011 1 commit
  23. 28 Jul, 2011 1 commit
  24. 27 Jul, 2011 1 commit
  25. 26 Jul, 2011 1 commit
  26. 25 Jul, 2011 1 commit
  27. 20 Jul, 2011 1 commit
    • Simon Peyton Jones's avatar
      Improve semantics of wild-card expansion (fixes #5334) · 5d89565b
      Simon Peyton Jones authored
      When expanding the {..} stuff in an *expression*, take
      account of which variables are in scope.
      
      I updated the documentation, and in doing so found that
      part of the previously-documented semantics wasn't implemented
      (namely the stuff about fields in scope), so I fixed that too.
      5d89565b
  28. 06 Jul, 2011 1 commit
  29. 01 Jul, 2011 3 commits
  30. 18 Jun, 2011 1 commit