         let components = self.components(separatedBy: "\r\n")
         var openRadar = OpenRadar()
         var parts = [String]()
-        var lastSetter: ((inout OpenRadar, String) -> Void)?
+        var lastKeypath: WritableKeyPath<OpenRadar, String?>?
 
         for component in components {
             guard component.last == ":",
-                let setter = sectionToSetter[String(component.dropLast()).lowercased()] else
+                let keyPath = sectionToKeyPath[String(component.dropLast()).lowercased()] else
             {
                 parts.append(component)
                 continue
             }
 
-            if !parts.isEmpty && lastSetter == nil {
+            if !parts.isEmpty && lastKeypath == nil {
                 throw OpenRadarParsingError.invalidFormat
             }
 
-            lastSetter?(&openRadar, parts.joined(separator: "\r\n").strip())
+            if let lastKeypath = lastKeypath {
+                openRadar[keyPath: lastKeypath] = parts.joined(separator: "\r\n").strip()
+            }
             parts = []
-            lastSetter = setter
+            lastKeypath = keyPath
         }
 
-        if let setter = lastSetter {
+        if let keyPath = lastKeypath {
             if !parts.isEmpty {
-                setter(&openRadar, parts.joined(separator: "\r\n").strip())
+                openRadar[keyPath: keyPath] = parts.joined(separator: "\r\n").strip()
             }
         } else {
             throw OpenRadarParsingError.invalidFormat

    public var notes: String?
    public var steps: String?
    public var version: String?

    fileprivate init() {}
}

private let sectionToKeyPath: [String: WritableKeyPath<OpenRadar, String?>] = [
    "actual results": \.appendingToActual,
    "area": \.areaString,
    "configuration": \.configuration,
    "expected results": \.expected,
    "notes": \.notes,
    "observed results": \.appendingToActual,
    "steps to reproduce": \.steps,
    "summary": \.description,
    "version": \.version
]

public struct OpenRadar {
    public var actual: String?
    public var areaString: String?
