I'm new to Scala and cannot get this code work right, any help will be appreciated! Here's what I have

```
sealed trait List[+A] {
  def foldRight[B](f: (B, A) => B, acc: B): B = {
    def go(acc: B, list: List[A]): B = list match {
      case Nil => acc
      case Cons(x, xs) => go(f(acc, x), xs)
    }
    go(acc, this)
  }
}

case object Nil extends List[Nothing]
case class Cons[+A](x: A, xs: List[A]) extends List[A]

val list: List[Int] = Cons(1, Cons(2, Cons(3, Cons(4, Nil))))
val acc: Int = 0

// this one works
println(list.foldRight((x: Int, y: Int) => x + y, acc))

// this one says cannot resolve symbol +
println(list.foldRight((x, y) => x + y, acc))

```

I don't understand why it cannot infer the types, because list is List[Int] (A) and the second arg to foldRight is Int (B). Any thoughts?