1. 12 May, 2015 2 commits
    • David Terei's avatar
      New handling of overlapping inst in Safe Haskell · 4fffbc34
      David Terei authored
      We do much better now due to the newish per-instance flags. Rather than
      mark any module that uses `-XOverlappingInstances`,
      `-XIncoherentInstances` or the new `OVERLAP*` pragmas as unsafe, we
      regard them all as safe and defer the check until an overlap occurs.
      An type-class method call that involves overlapping instances is
      considered _unsafe_ when:
      1) The most specific instance, Ix, is from a module marked `-XSafe`
      2) Ix is an orphan instance or a MPTC
      3) At least one instance that Ix overlaps, Iy, is:
         a) from a different module than Ix
         b) Iy is not marked `OVERLAPPABLE`
      This check is only enforced in modules compiled with `-XSafe` or
      This fixes Safe Haskell to work with the latest overlapping instance
      pragmas, and also brings consistent behavior. Previously, Safe Inferred
      modules behaved differently than `-XSafe` modules.
    • David Terei's avatar
      Fix safe haskell bug: instances in safe-inferred · eecef173
      David Terei authored
      Instances in Safe Inferred modules weren't marked being marked as coming
      from a Safe module.
  2. 15 Nov, 2014 1 commit
  3. 13 Nov, 2014 2 commits
  4. 06 Nov, 2014 3 commits
  5. 18 Oct, 2014 1 commit
  6. 02 Aug, 2014 3 commits
  7. 31 Jul, 2014 1 commit
    • Simon Peyton Jones's avatar
      Complete work on new OVERLAPPABLE/OVERLAPPING pragmas (Trac #9242) · 1ae5fa45
      Simon Peyton Jones authored
      * Deprecate -XOverlappingInstances
      * Update test suite.  Several tests even had entirely unnecessary
        uses of -XOverlappingInstances
      * Update user manual with a careful description of the instance
        resolution story
      * Fix an outright bug in the handling of duplidate instances in GHCi,
        which are meant to silently overwrite the earlier duplicate. The
        logic was right for family instances but was both more complicated,
        and plain wrong, for class instances.  (If you are interested, the
        bug was that we were eliminating the duplicate from the InstEnv, but
        not from the [ClsInst] held in tcg_insts.)  Test is ghci044a.
  8. 24 Mar, 2014 1 commit
  9. 25 Feb, 2014 1 commit
  10. 17 Feb, 2014 1 commit
    • Austin Seipp's avatar
      Fix #8745 - GND is now -XSafe compatible. · a8a01e74
      Austin Seipp authored
      As discussed in the ticket, after the landing of #8773, GND is now
      -XSafe compatible.
      This fixes the test fallout as well. In particular SafeLang07 was
      removed following in the steps of SafeLang06, since it no longer failed
      from GND, but failed due to roles and was thus invalid.
      The other tests were tweaked to use TemplateHaskell instead of GND in
      order to trigger safety warnings.
      Signed-off-by: default avatarAustin Seipp <austin@well-typed.com>
  11. 23 Sep, 2013 1 commit
  12. 14 Sep, 2013 1 commit
  13. 24 Feb, 2013 1 commit
  14. 12 Feb, 2013 1 commit
    • jpm@cs.ox.ac.uk's avatar
      Implement poly-kinded Typeable · 94d8b995
      jpm@cs.ox.ac.uk authored
      This patch makes the Data.Typeable.Typeable class work with arguments of any
      kind. In particular, this removes the Typeable1..7 class hierarchy, greatly
      simplyfing the whole Typeable story. Also added is the AutoDeriveTypeable
      language extension, which will automatically derive Typeable for all types and
      classes declared in that module. Since there is now no good reason to give
      handwritten instances of the Typeable class, those are ignored (for backwards
      compatibility), and a warning is emitted.
      The old, kind-* Typeable class is now called OldTypeable, and lives in the
      Data.OldTypeable module. It is deprecated, and should be removed in some future
      version of GHC.
  15. 07 Feb, 2013 1 commit
    • ian@well-typed.com's avatar
      Pass the test name to the test options · effc8af9
      ian@well-typed.com authored
      This allows them to give framework failures.
      I also had to change how setTestOpts works. Now, rather than applying
      the options to the directory's "default options", it just stores the
      options to be applied for each test (i.e. once we know the test name).
  16. 23 Jul, 2012 1 commit
  17. 11 Jun, 2012 1 commit
  18. 10 Apr, 2012 2 commits
  19. 04 Apr, 2012 1 commit
  20. 16 Nov, 2011 1 commit
  21. 10 Nov, 2011 1 commit
  22. 09 Nov, 2011 1 commit
  23. 25 Oct, 2011 4 commits