probe process("inherit.exe").function("main")
{
  // A::foo is masked, so @cast is necessary.
  println(@cast(&$b, "A")->foo->x)
  println(@cast(&$b, "A")->foo->y)

  // A::bar is not masked, so inheritance should find it.
  println($b->bar->x)
  println($b->bar->y)

  // B::foo masks A::foo, so should be found first.
  // NB: We can't treat a struct as a scalar, so this will fail if it
  //     tries to go through A::foo.  B::foo should be fine as an int.
  println($b->foo)

  // Pretty-printing should skip the masked A::foo altogether
  println($b$)
  println($b$$)
}
