I have a tuple and want to add an element without loosing type safety. This is what I want to achieve:
val tuple = ("", 1, 1f) // (String, Int, Float)
val newTuple:(String, Int, Float, Double) = tuple :+ 1d
Shapeless now does it. Adding
import shapeless.syntax.std.tuple._
before your code just compiles.