-> receive Msg -> case Msg of {name_msg, Sender} -> Me = self(), Child = spawn(fun() -> behvB(Me) end), Sender ! {name_msg, Child}, behvA(); _ -> behvA() end end. CoFixpoint behvA := receive (fun msg => match msg with | name_msg sender => me <- self; child <- new (behvB me); sender ! name_msg child; become behvA | _ => become behvA end ).