added an immutable type-sensitive value map