[GHC] #7888: Impredicativity flag needed more often

GHC cvs-ghc at haskell.org
Wed May 15 15:16:48 CEST 2013


#7888: Impredicativity flag needed more often
----------------------------------------------+-----------------------------
Reporter:  monoidal                           |          Owner:                         
    Type:  bug                                |         Status:  new                    
Priority:  normal                             |      Component:  Compiler (Type checker)
 Version:  7.6.3                              |       Keywords:                         
      Os:  Unknown/Multiple                   |   Architecture:  Unknown/Multiple       
 Failure:  Incorrect warning at compile-time  |      Blockedby:                         
Blocking:                                     |        Related:                         
----------------------------------------------+-----------------------------

Comment(by simonpj@…):

 commit a18ea4f20b73e1b3ef5cda2389c713152eb9576e
 {{{
 Author: Simon Peyton Jones <simonpj at microsoft.com>
 Date:   Wed May 15 09:51:25 2013 +0100

     Make 'undefined' have the magical type 'forall (a:OpenKind).a'

     This fixes Trac #7888, where the user wanted to use 'undefined' in a
     context that needed ((forall a. a->a) -> Int).  We allow OpenKind
     unification variables to be instantiate with polytypes (or unboxed
     types), hence the change.

     'error' has always been like this; this change simply extends
     the special treatment to 'undefined'.  It's still magical;
     you can't define your own wrapper for 'error' and get the
     same behaviour.  Really just a convenience hack.

  compiler/coreSyn/MkCore.lhs    |   48
 ++++++++++++++++++++++++++++++++-------
  compiler/prelude/PrelNames.lhs |    5 ----
  2 files changed, 39 insertions(+), 14 deletions(-)
 }}}

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/7888#comment:1>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler



More information about the ghc-tickets mailing list