My solution is:
def mySum[T: Numeric](l: List[T]): T = {
val s = implicitly[Numeric[T]].zero
@tailrec
def inner[T: Numeric](l: List[T], s: T): T = l match {
case Nil => s
Syntactic sugar is just a way that we re-write our code to a simple and human-readable form, it does not change any function of a method.
IntelliJ IDEA offers a Desugar Scala Code function, you can use that to discover what this syntactic sugar actually stands for.
Here is an example:
def lift[T1,T2](f: T1 => T2):Try[T1]=>Try[T2] = _ map f