[GHC] #2714: No match in record selector Var.tcTyVarDetails

GHC trac at galois.com
Mon Oct 20 16:46:10 EDT 2008


#2714: No match in record selector Var.tcTyVarDetails
-----------------------------------------------------+----------------------
    Reporter:  morrow                                |       Owner:                         
        Type:  bug                                   |      Status:  new                    
    Priority:  normal                                |   Component:  Compiler (Type checker)
     Version:  6.10.1                                |    Severity:  normal                 
    Keywords:  Var, tcTyVarDetails, record selector  |    Testcase:                         
Architecture:  Unknown/Multiple                      |          Os:  Unknown/Multiple       
-----------------------------------------------------+----------------------
 Summary:

 {{{
 ghci> :t fmap :: ((a -> b) -> b) -> (forall c. c -> a)
 *** Exception: No match in record selector Var.tcTyVarDetails
 }}}

 I stumbled across this while in ghci with flags:

 {{{
 :set -fglasgow-exts -O2 -fno-print-bind-result
 :set -XQuasiQuotes -XTemplateHaskell
 }}}

 Beginning with where I came across it and proceeding
 in reverse chrono order wrt ghc versions:

 {{{
 [m at ganon feio]$ ghc -V
 The Glorious Glasgow Haskell Compilation System, version 6.10.0.20080927

 ghci> :t fmap :: ((a -> b) -> b) -> (forall c. c -> a)
 *** Exception: No match in record selector Var.tcTyVarDetails
 }}}

 {{{
 [m at ganon feio]$ ghc -V
 The Glorious Glasgow Haskell Compilation System, version 6.9.20080504

 ghci> :t fmap :: ((a -> b) -> b) -> (forall c. c -> a)
 *** Exception: No match in record selector Var.tcTyVarDetails
 }}}


 {{{
 [m at ganon feio]$ /usr/bin/ghc-6.8.2 -V
 The Glorious Glasgow Haskell Compilation System, version 6.8.2

 ghci> :t fmap :: ((a -> b) -> b) -> (forall c. c -> a)

 <interactive>:1:0:
     Couldn't match expected type `c'
            against inferred type `f (f b -> b)'
       `c' is a rigid type variable bound by
           the polymorphic type `forall c. c -> a' at <interactive>:1:0
     Probable cause: `fmap' is applied to too few arguments

 <interactive>:1:0:
     Couldn't match expected type `a' against inferred type `f b'
       `a' is a rigid type variable bound by
           the polymorphic type
             `forall a b. ((a -> b) -> b) -> forall c. c -> a'
             at <interactive>:1:0
     Probable cause: `fmap' is applied to too few arguments
 }}}

 {{{
 [m at ganon feio]$ /usr/bin/ghc-6.8.1 -V
 The Glorious Glasgow Haskell Compilation System, version 6.8.1

 ghci> :t fmap :: ((a -> b) -> b) -> (forall c. c -> a)

 <interactive>:1:0:
     Couldn't match expected type `c'
            against inferred type `f (f b -> b)'
       `c' is a rigid type variable bound by
           the polymorphic type `forall c. c -> a' at <interactive>:1:0
     Probable cause: `fmap' is applied to too few arguments
 }}}

 Aside from filing a bug rpt, I'm curious in general about what
 change to whathaveyou, some way or another, had this as a side-effect.

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


More information about the Glasgow-haskell-bugs mailing list