 private let missingTrailingCommaReason = "Multi-line collection literals should have trailing commas."
 private let extraTrailingCommaReason = "Collection literals should not have trailing commas."
 
-public struct TrailingCommaRule: ASTRule, ConfigurationProviderRule {
+public struct TrailingCommaRule: ASTRule, CorrectableRule, ConfigurationProviderRule {
     public var configuration = TrailingCommaConfiguration()
 
     public init() {}

            contents.bridge().NSRangeToByteRange(start: $0.location, length: $0.length)
        }?.location
    }
}

        guard let commaIndex = trailingCommaIndex(contents: contentsAfterLastElement, file: file,
                                                  offset: lastPosition) else {
            guard configuration.mandatoryComma else {
                return nil
            }

            return (lastPosition, missingTrailingCommaReason)
        }

        // trailing comma is present, which is a violation if mandatoryComma is false
        guard !configuration.mandatoryComma else {
            return nil
        }

        let violationOffset = lastPosition + commaIndex
        return (violationOffset, extraTrailingCommaReason)
    }

    private func violations(file: File, byteOffset: Int, reason: String) -> [StyleViolation] {
