to dereference a heap allocation copy handle to stack perform lookup to stack lookup x in *(ESP+4) of type (handle T) reg <- copy *(ESP+5) : (address T stack) payload alloc id <- copy *reg address alloc id <- copy *(ESP+4) compare payload alloc id, address alloc id jump if not equal to print stack trace and panic address <- add reg, 1 types: address T reg address T stack address T heap address T global copy down this spectrum is not permitted, but up is. addresses aren't allowed in types, globals and on the heap. Only handles. addresses are only for temporary manipulations. *(address T) <- copy T