Currently there is one moderately ugly workaround (proposed by @Karl) — defining an underscored protocol on top level and then creating a namespaced typealias:
public protocol _HiddenFeatureProtocol {
// requirements
}
public enum Namespace {
typealias FeatureProtocol = _HiddenFeatureProtocol
}
public struct FeatureImpl: Namespace.FeatureProtocol {
// implementation
}