Учитывая следующие классы:
case class AddRequest(x: Int, y: Int)
case class AddResponse(sum: Int)
case class ToUppercaseRequest(str: String)
case class ToUppercaseResponse(upper: String)
Как определить в виде файла некоторую функцию:
def process(req: ???): ???
Таким образом, должно выполняться следующее:
val r1: AddResponse = process(AddRequest(2, 3))
val r2: ToUppercaseResponse = process(ToUppercaseRequest("aaa"))
Также не следует компилировать следующее:
val r3 = process("somestring")