[GHC] #13345: GHC 8 type checker regression

GHC ghc-devs at haskell.org
Mon Feb 27 08:48:47 UTC 2017


#13345: GHC 8 type checker regression
-------------------------------------+-------------------------------------
        Reporter:  andreas.abel      |                Owner:  (none)
            Type:  bug               |               Status:  closed
        Priority:  normal            |            Milestone:
       Component:  Compiler (Type    |              Version:  8.0.2
  checker)                           |             Keywords:  type
      Resolution:  invalid           |  annotation
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by andreas.abel):

 Well, I also tried
 {{{#!hs
 import qualified Data.List as List
 }}}
 and then use `List.foldl`, but it did not help.  If this is "just a
 library design choice", maybe something went wrong there, but `base` is an
 integral part of `ghc`, thus, it is still a regression in that respect.

 What does work is to use `FunctionalDependencies` for the `Tr` class.  But
 since this feature is still underdeveloped, not knowing about injectivity
 of type constructors, I also have to turn on the sledgehammer
 `UndecidableInstances`.

 If not a bug, at least the situation is unpleasant.  There is no nice
 workaround.  Except breaking up the code to smaller pieces and insert type
 annotations.  (The original code was monadic, like:)
 {{{#!hs
   List.fold App Var <$> tr es
 }}}

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


More information about the ghc-tickets mailing list