[GHC] #13549: GHC 8.2.1's typechecker rejects code generated by singletons that 8.0 accepts
GHC
ghc-devs at haskell.org
Sat Apr 22 19:52:23 UTC 2017
#13549: GHC 8.2.1's typechecker rejects code generated by singletons that 8.0
accepts
-------------------------------------+-------------------------------------
Reporter: RyanGlScott | Owner: (none)
Type: bug | Status: new
Priority: high | Milestone: 8.2.1
Component: Compiler (Type | Version: 8.1
checker) |
Resolution: | Keywords: TypeInType
Operating System: Unknown/Multiple | Architecture:
Type of failure: GHC rejects | Unknown/Multiple
valid program | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s):
Wiki Page: |
-------------------------------------+-------------------------------------
Comment (by goldfire):
I still think this is #13555. In all cases, the extra kind signatures
mention kind variables, which GHC is now not generalizing.
What surprises me about this case is that no generalization should be
necessary to compile the singled `permutations`. My best guess is that
untouchable type variables induced by some GADT pattern matching prevent
GHC from inferring the correct kinds of the functions. If their kinds are
generalized, then all works out. But since they are not being generalized
any more, we run into a problem.
I'm inclined to try to understand this as an infelicity in singletons,
that it produces code that GHC can't infer the kinds of. I doubt
singletons can fix the problem, but it would be nice to be able to
characterize what exactly is the cause of the problem and then document
the infelicity. In the meantime, I'd bet that adding a type annotation to
`perms` and `interleave` in the `Data.Singletons.Prelude.List`
implementation would allow singletons to compile. I'm happy to do the
further digging, but not for a few weeks, I'm afraid.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/13549#comment:11>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list