
#15650: Add (or document if already exist) ability to derive custom typeclasses via source plugins -------------------------------------+------------------------------------- Reporter: chshersh | Owner: (none) Type: feature request | Status: new Priority: normal | Milestone: 8.6.1 Component: Compiler | Version: 8.6.1-beta1 Resolution: | Keywords: source | plugins,deriving,typeclass Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by mpickering): * related: #12457 => Comment: I have been playing around with this problem this morning. There are some engineering issues to do with the phase ordering. Plugins run at the end of the specific phase so you need to at least run a renamer plugin to remove the instances like `Derived Foo` from the deriving list. Then you probably need to also to implement a type checker plugin to solve the instances you are yet to create and finally, actually generate the instances with `TcDeriv` and so on. One way around this might be to implement the deriving all in a renamer plugin as then you can just directly generate the `instance Foo a where..` syntax and pass it into the type checker. Now typing this out, this seems a more robust and easy solution to implement. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/15650#comment:3 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler