<head></head><body><div><!-- <signature> --><b><br></b><!-- </signature> --></div><div class="gmail_quote"><br></div><div class="gmail_quote">
  On May 4 2016, at 5:37 pm, James Froggatt &lt;conductator@ntlworld.com&gt; wrote:
  <br>
  <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
    <meta content="text/html; charset=utf-8"><div>I was thinking that requiring instance properties would mean the value could only be a struct, but rethinking, I realise computed properties would work fine for protocol conformance, so this isn't actually true.</div><div id="AppleMailSignature"><br></div><div id="AppleMailSignature">I agree with your support of focusing on interface. Your implications for AnyObject and AnyValue are interesting - that reference-type and value-type semantics are a kind of interface…</div><div id="AppleMailSignature"><br></div><div id="AppleMailSignature">One thing occurs to me, thinking about this: what if protocols could require enum cases? This could allow a Failable protocol with .failure(ErrorType), for example; or Nillable, which could implement NilLiteralConvertible for enums with a .none case… I'm not sure, maybe this wouldn't be so useful in practice?</div></blockquote><div class="gmail_quote"><br></div><div class="gmail_quote">Basically you are asking to initialize with something, and not read from it later. So better to just have a:</div><div class="gmail_quote"><br></div><div class="gmail_quote">init(error: ErrorType)</div><div class="gmail_quote"><br></div><div class="gmail_quote">I think. And use&nbsp;NilLiteralConvertible!</div><div class="gmail_quote"><br></div><div class="gmail_quote">Enums are tightly coupled to their structure, and I imagine compile down to some sort of bit offset, so you can’t really have a generic .failure case that would work with all enums, as they will be at different offsets in the enum.</div><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div id="AppleMailSignature"><div><br></div>From James F</div></blockquote><br><div><div>
  
</div></div>
  
</div><div class="gmail_quote"><b style="line-height: 19.6px;">Patrick Smith</b><br></div></body>