@ import shapeless._, record._
import shapeless._, record._
@ case class Foo(one: String, two: Long, three: Boolean)
defined class Foo
@ val fooGeneric = LabelledGeneric[Foo]
fooGeneric: LabelledGeneric[Foo]{type Repr = shapeless.::[String with shapeless.labelled.KeyTag[Symbol with shapeless.tag.Tagged[String("one")],String],shapeless.::[Long with shapeless.labelled.KeyTag[Symbol with shapeless.tag.Tagged[String("two")],Long],shapeless.::[Boolean with shapeless.labelled.KeyTag[Symbol with shapeless.tag.Tagged[String("three")],Boolean],shapeless.HNil]]]} = shapeless.LabelledGeneric$$anon$1@289254fe
@ val fooInst = Foo("One", 2L, true)
fooInst: Foo = Foo("One", 2L, true)
@ val genFooInst = fooGeneric.to(fooInst)
genFooInst: fooGeneric.Repr = One :: 2 :: true :: HNil
@ genFooInst('one)
res12: String = "One"
@ genFooInst('three)
res13: Boolean = true