anchor.diff:          member __.BasePreRestart(exn, msg) = base.PreRestart (exn, msg)
           member __.BasePostRestart(exn) = base.PostRestart (exn)
   
  -        member __.Next (current : Decorator<'Message>) (context : Actor<'Message>) (message : obj) : Decorator<'Message> = 
  +        member __.Next (current : ContWrapper<'Message, 'Returned>) (context : Actor<'Message>) (message : obj) : ContWrapper<'Message, 'Returned> = 
               match message with
               | :? 'Message as msg -> 
                   match current with
  -                | :? Become<'Message> as become -> become.Next msg
  +                | :? Become<'Message, 'Returned> as become -> become.Next msg
                   | _ -> current
               | other -> 
                   base.Unhandled other
  
positive.code:             | None -> x.BasePostRestart (exn)
              | Some o -> o x.BasePostRestart
  
      and [<Interface>]Decorator<'Message> = interface end
      and ActorAction<'Message> =
          | Empty
          interface Decorator<'Message>
      and [<Struct>]Become<'Message>(next: 'Message -> Decorator<'Message>) =
          member x.Next = next
          interface Decorator<'Message>
      and [<Struct>]AsyncDecorator<'Message>(asyncDecorator: Async<Decorator<'Message>>) =
          member __.Decorator = asyncDecorator
          interface Decorator<'Message>
  
      type ExpressionExt = 
          static member ToExpression(f : System.Linq.Expressions.Expression<System.Func<FunActorExt<'Message, 'v>>>) = toExpression<FunActorExt<'Message, 'v>> f
          static member ToExpression<'Actor>(f : Quotations.Expr<(unit -> 'Actor)>) = toExpression<'Actor> (QuotationEvaluator.ToLinqExpression f)
  
      
      let (|Become|_|) (effect: Decorator<'Message>) =
          if effect :? Become<'Message>
          then Some ((effect :?> Become<'Message>).Next)
          else None
  
      /// Gives access to the next message throu let! binding in actor computation expression.
  
negative.code:     /// <summary>
      /// Returns an actor effect causing no changes in message handling pipeline.
      /// </summary>
      let inline empty (_: 'Any) : ContWrapper<'Message, 'Returned> = ActorAction.Empty :> ContWrapper<'Message, 'Returned>
  
      /// <summary>
      /// Returns an actor effect causing actor to switch its behavior.
      /// </summary>
      /// <param name="next">New receive function.</param>
      let inline become (next) : ContWrapper<'Message, 'Returned> = Become(next) :> ContWrapper<'Message, 'Returned>