type File = record fd: Int end Node#[T] = record next: ^Node#[T]; value: T end Ref#[T] = ^T Boxed#[V] = record inner: ^Node#[V] end var chain: Node#[^File] aliased: Ref#[^File] raw: ^^File boxed: Boxed#[^File] program() begin chain.next := nil; aliased := raw; raw := aliased; boxed.inner := @chain return 0u8 end.