The original Ambient Calculus and its many successive variants are formalisms for reasoning about concurrent communicating processes which live in ambients (locations) which are nested and mobile. Previous type systems have always globally mapped each ambient name to a type that governs the location immediately inside any ambient of that name. In these systems, the type of a process at a location tells only the type or types of values that can be locally communicated.
We present a new type system where there are no global assignments of types to ambient names. Instead, the type of an ambient process P not only indicates what can be locally communicated but also gives an upper bound on the possible ambient nesting shapes of any process P' to which P can evolve. Because these shapes can depend on which capabilities and names are communicated, the types support this with explicit dependencies on communication. This system is thus the first type system for an ambient calculus which provides type polymorphism of the kind that is usually present in polymorphic type systems for the lambda calculus.