   }
 
   /// Determine the relative precedence between two precedence groups.
-  public func precedence(
+  func precedence(
     relating startGroupName: PrecedenceGroupName?,
     to endGroupName: PrecedenceGroupName?
   ) throws -> Precedence {


/// A graph formed from a set of precedence groups, which can be used to
/// determine the relative precedence of two precedence groups.
public struct PrecedenceGraph {
  /// The known set of precedence groups, found by name.
  public var precedenceGroups: [PrecedenceGroupName : PrecedenceGroup] = [:]

  /// Add a new precedence group
  ///
  /// - throws: If there is already a precedence group with the given name,
  ///   throws PrecedenceGraphError.groupAlreadyExists.
  public mutating func add(_ group: PrecedenceGroup) throws {
    if let existing = precedenceGroups[group.name] {
      throw OperatorPrecedenceError.groupAlreadyExists(
        existing: existing, new: group)

  ///
  /// Follow the precedence relationships among the precedence groups to
  /// determine the precedence of the start group relative to the end group.
  func precedence(
    relating startGroupName: PrecedenceGroupName,
    to endGroupName: PrecedenceGroupName
  ) throws -> Precedence {
