[GHC] #8423: contraint solver doesn't reduce reducible closed type family expressions (even with undecidable instances!)

GHC ghc-devs
Wed Oct 9 14:51:12 UTC 2013


#8423: contraint solver doesn't  reduce reducible closed type family expressions
(even with undecidable instances!)
--------------------------------------------+------------------------------
        Reporter:  carter                   |            Owner:
            Type:  feature request          |           Status:  new
        Priority:  normal                   |        Milestone:  7.10.1
       Component:  Compiler (Type checker)  |          Version:  7.7
      Resolution:                           |         Keywords:
Operating System:  Unknown/Multiple         |     Architecture:
 Type of failure:  None/Unknown             |  Unknown/Multiple
       Test Case:                           |       Difficulty:  Unknown
        Blocking:                           |       Blocked By:
                                            |  Related Tickets:  #4259
--------------------------------------------+------------------------------

Comment (by goldfire):

 If you just want a way to check things, please see
 [https://gist.github.com/goldfirere/6902431 here]. The key step is that
 you do in fact have to write proofs! These proofs may, sadly, have runtime
 significance. But, from the optimization results in the "Deferred type
 errors" [http://research.microsoft.com/en-
 us/um/people/simonpj/papers/ext-f/icfp12.pdf paper] lead me to wonder if
 these runtime traces are optimized away. (I haven't checked -- doing so is
 beyond the scope of my morning Haskell stretches.) I did check, though,
 that the inliner will remove calls to `gcoerce` and make `go` properly
 tail-recursive (ignoring the type-cast, which I know is removed at
 runtime).

 Thanks for posting this! It's made me realize that `gcoerce` from that
 example should probably be in the Data.Type.Equality module anyway.

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



More information about the ghc-tickets mailing list