 }
 
 public extension AcceptsSelectionSet {
-    public func serializedSelections() throws -> [String] {
+    func serializedSelections() throws -> [String] {
         return try self.selectionSet.selections.map { try $0.graphQLString() }
     }
 }

/// Defines a _Field_ from the GraphQL language that is a Scalar type.
public protocol ScalarField: FieldRepresenting { }
public extension ScalarField {
    public var alias: String? {
        return nil
    }
    
    public var arguments: [String : InputValue]? {
        return nil
    }
    
    public var directives: [Directive]? {
        return nil
    }
    
    public var asSelection: Selection {
        return .field(name: self.name, alias: self.alias, arguments: self.arguments, directives: self.directives, type: .scalar)
    }
}

}

public extension SelectionSetSerializable {
    func serializedSelectionSet() throws -> String {
        return try self.serializedSelectionSet(serializedSelections: try self.serializedSelections())
    }
    
    func serializedSelectionSet(serializedSelections: [String]) throws -> String {
        let selectionSetString = serializedSelections.compactMap { selection -> String? in
            guard selection.count > 0 else {
                return nil
