Afaik, every Unicode scalar can be its own character, so IMO it&#39;s not bothersome that there are overloads that take Unicode scalar arguments. However, since the stated purpose of the type is to be a set of characters, isn&#39;t the problem you&#39;re presenting really an argument that the type should be fleshed out to handle characters (grapheme clusters) containing more than one Unicode scalar?<br><br><br><div class="gmail_quote"><div dir="ltr">On Wed, Sep 28, 2016 at 18:43 Erica Sadun &lt;<a href="mailto:erica@ericasadun.com">erica@ericasadun.com</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">On Sep 28, 2016, at 3:58 PM, Xiaodi Wu &lt;<a href="mailto:xiaodi.wu@gmail.com" target="_blank">xiaodi.wu@gmail.com</a>&gt; wrote:<br></div><div style="word-wrap:break-word"><div><blockquote type="cite"><br><div><div dir="ltr">Is this really correct? Character and UnicodeScalar are not synonyms. The Character type represents a character made up of one or more Unicode scalars (i.e. an extended grapheme cluster). Is a CharacterSet a set of Unicode-compliant characters that happens to be restricted to those characters each made up of only a single Unicode scalar, or is it meant to be a set of Unicode scalars? My read of the Foundation documentation is that it is the former.</div></div></blockquote><div><br></div></div></div><div style="word-wrap:break-word"><div><div><a href="http://i.imgur.com/h6W5kYc.jpg" target="_blank">http://i.imgur.com/h6W5kYc.jpg</a></div><div><br></div><div><a href="http://i.imgur.com/q50PSld.jpg" target="_blank">http://i.imgur.com/q50PSld.jpg</a></div></div></div><div style="word-wrap:break-word"><div><div><br></div><div>-- E</div><div><br></div><div><br></div></div></div></blockquote></div>