     }
 
     /**
-     TODO: docstring
+     Removes note at note `index.
      
      - parameter index: The index of the note in the specified note set.
      - parameter setIndex: The index of the note set holding the note.

    }

    /**
     TODO: docstring
     
     - parameter index: The index of the note in the specified note set.
     - parameter setIndex: The index of the note set holding the note.
     */
    internal mutating func startTie(at index: Int, inSet setIndex: Int) throws {
        try modifyTie(at: index, requestedTieState: .begin, inSet: setIndex)
    }

    /**
     TODO: docstring
     
     - parameter index: The index of the note in the specified note set.
     - parameter setIndex: The index of the note set holding the note.
     */
    internal mutating func removeTie(at index: Int, inSet setIndex: Int) throws {
        try modifyTie(at: index, requestedTieState: nil, inSet: setIndex)
    }

    /**
     TODO: docstring
     
     - parameter index: The index of the note in the specified note set.
     - parameter setIndex: The index of the note set holding the note.
     */
    internal mutating func modifyTie(at index: Int, requestedTieState: Tie?, inSet setIndex: Int) throws {
        guard requestedTieState != .beginAndEnd else {

    }

    /**
     Returns tie state of note at `index`.
     
     - parameter index: Note index.
     - parameter setIndex: Note set index.
     */
    private func tieState(for index: Int, inSet setIndex: Int) throws -> Tie? {
        return try note(at: index, inSet: setIndex).tie
