Swift will eventually permit protocol conformance to be controlled by a where clause (see SE-0143), but this is not currently possible in Swift 3. The absence of this feature forces several awkward workarounds, most notably the proliferation of SQLQuery variants. Once Swift adopts conditional conformances, we should revisit these areas.