class Boopy {
    private val s = new Schnuck
    def observer : PartialFunction[ Any, Unit ] = s.observer

    private class Schnuck extends javax.swing.AbstractListModel {
        model =>
        val observer : PartialFunction[ Any, Unit ] = {
            case "Boopy" => fireIntervalAdded( model, 0, 1 )
        }
        def getSize = 0
        def getElementAt( idx: Int ) = ???
    }

}

object Test {
  def main(args: Array[String]): Unit = {
    val x = new Boopy
    val o = x.observer
    o( "Boopy" ) // --> throws runtime error
  }
}
