Automatic generator for Product types (and only product types). For anything that is automatically evaluated by the Scala compiler as a implicit (e.g. auto-derivation) we need to be really careful for that not to evaulate for Products and Primitives (and/or Sums) otherwise there is a danger that it will recurse infinately on certain datatypes that are not well-formed. Therefore for products we have a single function that handles derivation only for products and the implicit needed for that (in the Derivers). This is needed for the following purpose.
Automatic generator for Product types (and only product types). For anything that is automatically evaluated by the Scala compiler as a implicit (e.g. auto-derivation) we need to be really careful for that not to evaulate for Products and Primitives (and/or Sums) otherwise there is a danger that it will recurse infinately on certain datatypes that are not well-formed. Therefore for products we have a single function that handles derivation only for products and the implicit needed for that (in the Derivers). This is needed for the following purpose.
Say that we have a simple case-class hierarchy like this {{ case class Person(name: Name, age: String) case class Name(first: String, last: String)