void -rc -.ptr reverse (p_tree_node -&w node)
{
  void walk (p_tree_node -&w node)
  {
    reverse (node) : (node);
  }

  with (node)
  {
    ->left = ->right = ->left,
    {
      walk (->right),
      {
        walk (->left)
      }
    };
  }
}
