Como restringir mensagens de ator a tipos específicos?

Em Akka, existe uma maneira de restringir as mensagens aos atores de um tipo estático específico, além de usar as APIs "Typed Actor" que usam um modelo de programação no estilo RP

Posso usar o estilo de passagem de mensagens com a Akka sem jogar fora a segurança do tipo estático nos limites do ato

Por exemplo, eu gostaria de usar código como este:

sealed abstract class FooMessage
case object Foo extends FooMessage
case object Bar extends FooMessage

class FooActor extends Actor[FooMessage] {
  def receive = {
    case Foo => () // OK

    // Would raise a compiler error:
    // case s: String => error("Can't happen, String is not a subtype of FooMessage") 

  }
}

val fooActor = actorOf[FooActor]
fooActor ! Foo // OK

// Won't compile:
fooActor ! "Hello"

Talvez seja necessário estender alguma característica básica ou ter uma construção comoEither para permitir mensagens no nível do sistema Exit, etc.).

questionAnswers(4)

yourAnswerToTheQuestion