#3500: Type functions and recursive dictionaries
---------------------------------+------------------------------------------
Reporter: simonpj | Owner:
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 6.10.4
Severity: normal | Resolution:
Keywords: | Difficulty: Unknown
Testcase: | Os: Unknown/Multiple
Architecture: Unknown/Multiple |
---------------------------------+------------------------------------------
Comment (by simonpj):
You are trying to do something quite delicate here.
The whole idea of solving constraints in a co-inductive way (building a
recursive group of dictionary definitions) relies on spotting something
we've seen before to "tie the knot". To date, the main application I knew
for this fairly exotic idea was described in the SYB3 paper [1]. So I'm
curious about your application (and that of anyone else) that relies on
this recursive-dictionary-solving mechanism.
Returning to your problem, this "loop spotting" mechanism is rather
syntactic at the moment, whereas your application needs something more
refined, involving equality modulo type function reductions. Alas, the
constraint solving machinery for type classes and for type functions is
not properly integrated. I'm amazed it works as well as it does,
actually.
We [Manuel, Dimitrios, and I] are (slowly, slowly) working on a complete
rewrite of GHC's constraint-solving mechanism. I'm pretty sure that it'll
solve this problem among many others. But don't hold your breath. It'll
be months not weeks. But not years!
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/3500#comment:1>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs