Scala - 使用来自其他2个案例类的所有字段创建案例类

Sof*_*fia 5 types scala type-conversion shapeless

假设我有2个案例类:

case class Basic(id: String, name) extends SomeBasicTrait
case class Info (age: Int, country: String, many other fields..) extends SomeInfoTrait
Run Code Online (Sandbox Code Playgroud)

并且想要创建一个包含这两个案例类中所有字段的案例类.这是一种可能的方式:

case class Full(bs: Basic, meta: Info) extends SomeBasicTrait with SomeInfoTrait {
 val id = bs.id
 val name = bs.name
 val age = meta.age
 val country = meta.country
 // etc
} 
Run Code Online (Sandbox Code Playgroud)

但它是很多样板代码.有什么方法可以避免这种情况吗?

我无法在Shapeless中找到实现这一目标的方法,但也许有......

[ 更新 ]

@jamborta的评论有帮助,基本上是这样的:

case class FullTwo(id: String, name: String, age:Int, country:String)

val b = Basic("myid", "byname")
val i = Info(12, "PT")
Generic[FullTwo].from(Generic[Basic].to(b) ++ Generic[Info].to(i))
Run Code Online (Sandbox Code Playgroud)

这个解决方案的问题在于它仍然需要在FullTwo类的参数中定义每个字段,这样每次更改Basic或者更改时Info,我们也必须记住也要更改FullTwo.

有没有办法在编译时动态创建一个等于FullTwo?的case类?