When pasting your code (with object decapitalized) into the REPL it compiles on my box, as can be seen below.
Can you replicate your error message with the code below? Which version of Scala are you running?
Welcome to Scala 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_45).
Type in expressions for evaluation. Or try :help.
scala> :pa
// Entering paste mode (ctrl-D to finish)
object Wrapper1{
case class Foo[A](f: A => A)
def fail(foo: Any, x: Any) = foo match { case Foo(f) => f(x) }
}
object Wrapper2{
{
case class Foo[A](f: A => A)
def fail(foo: Any, x: Any) = foo match { case Foo(f) => f(x) }
}
}
// Exiting paste mode, now interpreting.
defined object Wrapper1
defined object Wrapper2
scala> Wrapper1.fail(42,42)
scala.MatchError: 42 (of class java.lang.Integer)
at Wrapper1$.fail(<console>:15)
... 32 elided
scala> Wrapper2.fail(42,42)
<console>:15: error: value fail is not a member of object Wrapper2
Wrapper2.fail(42,42)
^
scala>