
#10607: Auto derive from top to bottom -------------------------------------+------------------------------------- Reporter: songzh | Owner: Type: feature request | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.11 Resolution: | Keywords: deriving, | typeclass, auto Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by goldfire): Replying to [comment:9 songzh]:
2. I will try to solve it, just not sure about how to handle `TySynD` case.
Have you tried `th-expand-syns`? The snippet you've given just retrieves the constructors (with their bound variables) of a type. The fact that your `A'` synonym repeats a variable `a` shouldn't affect anything. You should be able to just use `th-expand-syns` and then recur. I'm sorry -- I still don't see the problem.
3.
This is more straightforward: you have unnecessary assumptions in your manual `Generic` instance. Deriving `G.Generic (C a b)` does not require `G.Generic` instances for `a` and `b`. In your standalone-deriving version, you've added these, so when the default methods in `Binary` use `C`'s `Generic` instance, GHC also tries to get those others. Omit the context for your `Generic (C a b)` instance and your second example compiles. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/10607#comment:10 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler