// after scala 3.2 extension[F, T, R] (f: F)(using util.TupledFunction[F, T => R]) def willBe(a: Answered.type): AnsweredBy[R] = AnsweredBy[R]()
// val f40 = (x1: Int, x2: Int, x3: Int, x4: Int, x5: Int, x6: Int, x7: Int, x8: Int, x9: Int, x10: Int, x11: Int, x12: Int , x13: Int, x14: Int, x15: Int, x16: Int, x17: Int, x18: Int, x19: Int, x20: Int, x21: Int, x22: Int, x23: Int, x24: Int, x25: Int, x26: Int, x27: Int, x28: Int, x29: Int, x30: Int, x31: Int, x32: Int, x33: Int, x34: Int, x35: Int, x36: Int, x37: Int, x38: Int, x39: Int, x40: Int) => 0 val ans = f40.willBe(xx)
A step-by-step migration is made possible with the following measures: In Scala 3.0, both _ and ? are legal names for wildcards. In Scala 3.1, _ is deprecated in favor of ? as a name for a wildcard. A -rewrite option is available to rewrite one to the other. In Scala 3.2, the meaning of _ changes from wildcard to placeholder for type parameter. The Scala 3.1 behavior is already available today under the -source future setting. To smooth the transition for codebases that use kind-projector, we adopt the following measures under the command line option -Ykind-projector: In Scala 3.0, * is available as a type parameter placeholder. In Scala 3.2, * is deprecated in favor of _. A -rewrite option is available to rewrite one to the other. In Scala 3.3, * is removed again, and all type parameter placeholders will be expressed with _.