Re: [GHC] #2439: Missed optimisation with dictionaries and loops

#2439: Missed optimisation with dictionaries and loops -------------------------------------+------------------------------------- Reporter: rl | Owner: simonpj Type: bug | Status: new Priority: lowest | Milestone: Component: Compiler | Version: 6.9 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Runtime | Unknown/Multiple performance bug | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by dfeuer): Replying to [comment:26 simonpj]:
I can't say I understand what is going on here, but in reify/reflect it seems that you want something akin to a local instance declaration. You want to write: {{{ reify (x :: a) (\ (p :: Proxy s) -> ...In here we have (Reifies s a)... ) }}} And you want to supply the local instance of `(Reifies s a)` yourself.
Isn't this just what implicit parameters are for? They give you local instance declarations, in effect.
The `reflection` package was largely motivated by [http://okmij.org/ftp/Haskell/tr-15-04.pdf Functional Pearl: Implicit Configurations -- or, Type Classes Reflect the Values of Types], by Oleg Kiselyov and Chung-chieh Shan, although their implementation is entirely different. Section 6.2 of the paper explains in depth why implicit parameters are insufficient. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/2439#comment:29 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler
participants (1)
-
GHC