program() type File = record fd: Int end Cell#[T] = record held: ^T end var files: Cell#[File] bytes: Cell#[Word8] f: File b: Word8 proc store#[T](target: ^Cell#[T]; value: ^T) begin target^.held := value return begin f.fd := 7; b := 3u8; store#[File](@files, @f); store#[Word8](@bytes, @b); assert(files.held^.fd = 7); assert(bytes.held^ = 3u8) end.