         return table[fromNode]!.updateValue(link, forKey: toNode)
     }
     
+    /// - Complexity: Amortized O(1).
     public mutating func removeLink(from fromNode: Node, to toNode: Node) -> Link? {
         if var list = table[fromNode], let result = list[toNode] {
             list.removeValueForKey(toNode)

        return false
    }
    
    public var isEmpty: Bool {
        return table.isEmpty
    }
    
    public mutating func removeNode(node: Node) {
        table[node] = nil
        for (fromNode, var list) in table {

    }
    
    /// A set containing just the nodes of `self`.
    ///
    /// - Complexity: O(`count of nodes`).
    public var nodes: Set<Node> {
        var _nodes = Set<Node>()
        for (_node, list) in table {
