/// Establishes a link relation between this actor and `x`
 /// and returns whether the operation succeeded.
 inline bool establish_backlink(abstract_actor* x) {
   return link_impl(establish_backlink_op, x);
 }
 /// Removes the link relation between this actor and `x`
 /// and returns whether the operation succeeded.
 inline bool remove_backlink(abstract_actor* x) {
   return link_impl(remove_backlink_op, x);
 }
 void unlink_from(const ActorHandle& x) {
   auto ptr = actor_cast<abstract_actor*>(x);
   if (!ptr || ptr == this)
     return;
   link_impl(remove_link_op, ptr);
 }
 /// Unlinks this actor from `x`.
 void unlink_from(const actor_addr& x) {
   auto ptr = actor_cast<strong_actor_ptr>(x);
   if (!ptr || ptr->get() == this)
     return;
   link_impl(remove_link_op, ptr->get());
 }
 void link_to(const ActorHandle& x) {
   auto ptr = actor_cast<abstract_actor*>(x);
   if (!ptr || ptr == this)
     return;
   link_impl(establish_link_op, ptr);
 }
 /// Links this actor to `x`.
 void link_to(const actor_addr& x) {
   auto ptr = actor_cast<strong_actor_ptr>(x);
   if (!ptr || ptr->get() == this)
     return;
   link_impl(establish_link_op, ptr->get());
 }