The crucial characteristic of object-oriented databases is the concept of object identity which allows the direct representation of various kinds of dependencies between objects, for example, sharing and cyclicity. For object stores to become a viable technology for large shared databases, a certain degree of spatial control over object dependencies (or object locality) seems to be essential. This paper exploits the power of a static type system to capture and evaluate locality information on objects. First, we represent objects by references to complex expressions in a functional language. To control the locality of objects, the space of references is partitioned into a set of subspaces with an explicit reachability constraint. Next, we define a type system where the locality of an object is part of its static type specification and the predefined reachability constraint is enforced via a static typing discipline. We conclude by highlighting the impact of locality information on the operational support to be expected by next generation database systems.