type Node = tuple[left: ref Node]

proc traverse(root: ref Node) =
  if root.left != nil: traverse(root.left)
  
type A = tuple[B: ptr A]
proc C(D: ptr A) = C(D.B)