<p><pre><code>  ZipCode GetZipCode()
  {
     var result = _crm.GetZip();
     return isValidZip(result) ? new ValidZip(result) : new InvalidZip(result);
  }

  class ValidZipCode : ZipCode { ... }
  class InvalidZipCode : ZipCode { ... }
</code></pre>
No edge cases, perfectly &#x27;documented&#x27;.