class SymbolicAddressMap {

	@Override
	protected SymbolicAddressMap clone() {
		if(this.isTop()) return this;
		return new SymbolicAddressMap(this.bsFactory,
				new HashMap<Location, BoundedSet<SymbolicAddress>>(this.mapP),
				new HashMap<String, BoundedSet<SymbolicAddress>>(this.mapA));
	}

	public  SymbolicAddressMap(BoundedSetFactory<SymbolicAddress> bsFactory);
	private  SymbolicAddressMap(BoundedSetFactory<SymbolicAddress> bsFactory,
							   HashMap<Location,BoundedSet<SymbolicAddress>> initP,
							   HashMap<String,BoundedSet<SymbolicAddress>> initA);

}