Allow default methods to be implemented using template haskell
In conversations with @kosmikus he suggested that it would be nice to integrate default implementations with typed template haskell.
class Eq a where eq :: a -> a -> Bool default splice eq :: Generic a => Code (a -> a -> Bool) eq = _impl_
This has the massive advantage that the default implementation can be efficient than the usual
Generics based implementations.
There would need to be a GHC proposal related to this ticket but I write it down here in case anyone else finds it interesting.
Related to #12457