Akka and its Akka.NET port support switchable behaviors (http://getakka.net/docs/working-with-actors/Switchable%20Behaviors), and not just in a simple form of letting an actor to become an actor with different behavior but also in a form of behavioral stack: an actor can go back to its previous behavior. This is achieved with methods BecomeStacked and BecomeUnstacked.
In F# behavior is supported in a different way: there is no need for Become method, instead an actor function can define multiple mailbox processing handlers and call a different handler effectively switching an actor to a different behavior. This works fine for non-stacked behaviors, but what if an actor function needs to stack its behaviors? How can this be implemented in F#?
UPDATE. To illustrate with use case. Consider telephony where an actor can have behaviors DirectCall, ConferenceCall and OnHold. OnHold behavior is reachable from both DirectCall and ConferenceCall, and whil OnHold an actor can receive messages to start nested calls. When a nested call is completed, an actor goes back to a previous call which can be either DirectCall or ConferenceCall. I can't see how this can be implemented without explicitly sending complete stack to an actor. After all, it's not that bad, I was just wondering if there is another way offered by Akka.NET. The mailbox Context.BecomeXXX is still available in F# API, but it has no use from within "actor" computational expression.
UPDATE 2 I have to agree with Tomas Jansson who reasoned in comments that he'd rather send the stack of previous behaviors (or previous states let's be fair) explicitly instead of relying on Akka's built-it BecomeStacked method that hides the history and makes it harder to test. So the absence of BecomeXXX methods in F# API doesn't really make it less powerful.