The garbage collection is a safe and efficient method for managing the heap. However it is not efficient for temporary storages that are allocated often and deallocated quickly. Reusing temporary storages without collecting garbages can be a remedy for such inefficiency. We present an effect system for checking whether every explicit memory reuse We abstract the heap by using symbolic locations, kinds of cells, and two-level domains. Based on this abstraction, we perform both alias and liveness analyses. The combined result precisely tells us whether every memory reuse is safe.