
#9819: Create typesafe method of obtaining dictionary types from class definitions, and constraint objects from dictionary types -------------------------------------+------------------------------------- Reporter: | Owner: spacekitteh | Status: new Type: feature | Milestone: request | Version: Priority: normal | Keywords: Component: Compiler | Architecture: Unknown/Multiple Resolution: | Difficulty: Moderate (less Operating System: | than a day) Unknown/Multiple | Blocked By: Type of failure: | Related Tickets: None/Unknown | Test Case: | Blocking: | Differential Revisions: | -------------------------------------+------------------------------------- Comment (by goldfire): OK -- so it seems you want to be able to fuzz the `*`/`Constraint` distinction. That is, for example, make explicit dictionaries of `Show` and pass them as parameters to functions with a declared `Show` constraint. Another way to think about this is that you want the ability to define local instances, much like what is done in that blog post. The problem here is that local instances threaten coherence properties. Local instances are really useful, but I think a fair amount of design work needs to be done to integrate local instances with Haskell. Or, simply to automate building `Def` instances, I would suggest Template Haskell. Without a general plan toward local instances, it seems too specific to bake in deriving `Def` instances into GHC, when it can easily be done with TH. [https://groups.google.com/forum/#!msg/haskell- cafe/JR8qd6RBKW4/xDcdtmuE9gsJ This haskell-cafe thread] may be of interest. It explores some of this design space. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9819#comment:5 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler