Miles Sabin
Miles Sabin
The trouble is the materialized `Generic[T]`, where `T` is instantiated at a case class, will embed a reference to the case class companion. Hence your construct `object Abc extends WithGeneric[Abc]`...
I did consider something like (2) `fold`, but in the end decided that it added complexity without any corresponding benefits. Leaving that aside we'd be left with something equivalent to...
I guess this also probably ought to wait until after the SMC refactor.
@ceedubs description updated.
Partially addressed in #239 ... lots more to do.
I think the messages should be specific to the particular type class in question ... I'm not sure that replacing the existing default message with a similarly non-specific template would...
I'm afraid that all of these mechanisms are a bit Heath Robinsonish ... I'm hoping to address the prioritization issue directly in the compiler.
Why is this a shapeless issue?
I'm going to punt this to 3.0 ... or has it been subsumed by Refined?
Are you referring to the `toProduct` syntax for function types that's defined in `shapeless/syntax/std/functions.scala`?