<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On May 20, 2016, at 11:53 AM, Matthew Johnson &lt;<a href="mailto:matthew@anandabits.com" class="">matthew@anandabits.com</a>&gt; wrote:</div><div class=""><div style="font-family: Palatino-Roman; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><div class="">I am less certain about allowing simple boolean expressions that are not introduced by the `where` keyword (excepting the first one which is introduced with the `guard` keyword). &nbsp;I think this is a separate question that should receive independent consideration. &nbsp;I think a reasonable argument can be made both ways. &nbsp;</div></div></div></blockquote><br class=""></div><div>That's kind of the heart of the matter.</div><div><br class=""></div><div>There's an assumption that guard statements are:</div><div><br class=""></div><div><font face="Menlo" class="">`guard` (conjoined boolean tests) | (conjoined boolean tests,)? (pattern | binding (where boolean)?, )+ else {...}</font></div><div><br class=""></div><div>Right? (Except I couldn't figure out how to grammar out the final comma,) I'm suggesting:</div><div><br class=""></div><div><font face="Menlo" class="">`guard` ((boolean | (pattern | binding (where boolean)?)),)+ else {...}</font></div><div><br class=""></div><div>instead. (And ditto about final comma) This promotes boolean statements to the same standing, so they're not limited to the start of the guard statement or syntactically tied to a pattern/binding where there may be no semantic basis.</div><div><br class=""></div><div>-- E</div><div><br class=""></div><div><br class=""></div><div><br class=""></div><div><br class=""></div><div><br class=""></div><div><br class=""></div><br class=""></body></html>