program() type File = record fd: Int end Cell#[T] = record held: ^T end var files: Cell#[File] bytes: Cell#[Word8] f: File b: Word8 s: []const Word8 proc identity#[T](value: ^T) -> ^T return value proc store#[T](target: ^Cell#[T]; value: ^T) target^.held := value return proc relay#[T](target: ^Cell#[T]; value: ^T) store(target, value) return begin store(@files, @f); relay(@bytes, @b); store(@files, cast(0u: ^File)); s := identity(@b)[1 to 1] end.