Angenommen, ich habe Container-MarkerhList als Parameter des Verfahrens mit vereinfachter Art Signatur
case class TypedString[T](value: String)
wo einige value
ID T
für bestimmte Art darstellt.
Ich habe zwei Klassen
case class User(id: String)
case class Event(id: String)
Und ich habe eine Funktion, die ein paar Sachen tut:
def func[L <: HList](l: L)(...) {...}
So kann ich es verwenden, wie
func[TypedString[User] :: TypedString[Event] :: HNil](
TypedString[User]("user id") :: TypedString[Event]("event id") :: HNil
)
(es ist für mich wichtig, (Typensignatur explizit beibehalten)
Die Frage ist: Wie oder func erstreckt sich ändern kürzere Art Signatur zu haben (wobei nur Typen Marker) wie:
func[User :: Event :: HNil](
TypedString[User]("user id") :: TypedString[Event]("event id") :: HNil
)