 		return Edge(source, destination)
 	}
 	
-	let nodes = uniqueNodes.reduce(Dictionary<Identifier, String>(), combine: { (accum: [Identifier: String], curr: String) in
+	let nodes = uniqueNodes.reduce(Dictionary<Identifier, String>()) { (accum: [Identifier: String], curr: String) in
 		let identifierIndex = find(uniqueNodes, curr) ?? 0
 		let identifier = nodeIdentifiers[identifierIndex]
 		return accum + [identifier: curr]
-    })
+    }
     
 	return Graph(nodes: nodes, edges: Set(edges))
 }

	// Skip the title.
	let lines = split(file, { $0 == "\n" })
	let rawLines = lines[1...(lines.count - 2)]
	let rawEdges = map(rawLines, { edge in parseEdge(edge) ?? ("", "")})
	let rawSources = map(rawEdges, { edge in edge.0 })
	let rawDestinations = map(rawEdges, { edge in edge.1 })
	let rawNodes = rawSources + rawDestinations
	let uniqueNodes = unique(rawNodes)
	let nodeIdentifiers = map(uniqueNodes) { _ in Identifier() }

	let characterParser = %("0"..."9") | %("a"..."z") | %("A"..."Z")
	let ignoreBeginningOfLine = ignore("\t") ++ ignore("\"")
	let edgeParser = ignoreBeginningOfLine ++ characterParser+ ++ ignore("\" -> \"") ++ characterParser+ ++ ignore("\";");

	if let (rawSource, rawDestination) = edgeParser(edge)?.0 {
		let source = String(rawSource.reduce([], combine: +))
		let destination = String(rawDestination.reduce([], combine: +))
