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 program() begin f.fd := 7; b := 3u8; store#[^File](@files, @f); store#[^Word8](@bytes, @b); assert(files.held^.fd = 7); assert(bytes.held^ = 3u8) return 0u8 end.