title: Objective-C immutable object copyWithZone: ARC-compatible realization
body: <p>As I assumed, this should work's fine for immutable object under ARC:</p>
  
  <pre><code>- (id) copyWithZone:(NSZone *)zone {
      return self;
  }
  </code></pre>
  
  <p>But if I need deep copy, I should write something like this:</p>
  
  <pre><code>- (id) copyWithZone:(NSZone *)zone {
      Immutable *copy = [[Immutable alloc] initWithStr:str];
      return copy;
  }
  </code></pre>
  
  <p>So, If I assumed right, ARC would understand situation (1) and (2) and make right decision about "+1" for references.</p>
  
  <p>Am I right ?</p>