[swift-evolution] [Proposal Draft] Literal Syntax Protocols

Erica Sadun erica at ericasadun.com
Fri Jul 1 11:00:22 CDT 2016

The best way to pass the Dave Test is to ask him directly, for example:


Do you think the stdlib team would be okay with a naming scheme like 
Syntax.Literal.ArrayProtocol,  Syntax.Literal.IntegerProtocol, etc. We think 
this produces a clear description of the conformant role and one that is unlikely to be 
misinterpreted. It may read less fluently but it's also less subject to confusing users. 

This naming scheme uses the Syntax namespacing, and creates a Literal subspace. 
Each protocol is named as "XXXXProtocol". This introduction a distinction between 
"This is/can be used as  an integer literal" and "Conforming to this protocol ensures
that an instance of the type can be written as an integer literal". 

The problem with earlier approximations was that people saw "Syntax.IntegerLiteralXXX" 
and thought the typed could be substituted into expressions where an integer literal
was used, and not that an integer literal could be be used to write an instance of 
the type.

So what do (and your team) think of this idea?

-- Adrian (and Erica)

> On Jul 1, 2016, at 2:08 AM, Adrian Zubarev via swift-evolution <swift-evolution at swift.org> wrote:
> We haven’t pass the dave test yet? :D 
> Still curious what he’d say about Syntax.Literal.*Protocol
> One more question:
> What can the namespace Syntax could be used for except for literals, any idea? (I have no clue.)

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160701/7552ee4e/attachment.html>

More information about the swift-evolution mailing list