WeakReference<ImmutableDescriptor> wr = map.get(descriptor); ImmutableDescriptor got = (wr == null) ? null : wr.get(); if (got != null) return got; map.put(descriptor, new WeakReference<ImmutableDescriptor>(descriptor)); return descriptor;
return instance;
if (proof != null) return instance; else return null;
return get(ImmutableDescriptor.union(descriptors));