anchor.diff:  ///     This is wrapped in a Chessie result over <c>Error</c>.
   /// </returns>
   let fold f init { Nodes = nodes; Edges = edges } =
  -    let l = Array.length nodes
  -        
       edges
       |> Seq.map
              (fun { Source = s; Target = t; Cmd = c } ->
  -                if s < 0 || s >= l || t < 0 || t >= l
  -                then { Source = s; Target = t; Cmd = c } |> EdgeOutOfBounds |> fail
  -                else ok { Source = nodes.[s]; Target = nodes.[t]; Cmd = c })
  +                match (Map.tryFind s nodes, Map.tryFind t nodes) with
  +                | Some sn, Some tn -> ok { Source = sn; Target = tn; Cmd = c }
  +                | _ -> { Source = s; Target = t; Cmd = c } |> EdgeOutOfBounds |> fail)
       |> collect
       |> lift (Seq.fold f init)
  
positive.code: ///     Attempts to create a new <c>Graph</c>.
  /// </summary>
  /// <param name="nodes">
  ///     The sequence of nodes in the graph.
  /// </param>
  /// <param name="edges">
  ///     The sequence of edges in the graph.
  
negative.code:         /// <summary>
          ///     Set of nodes in the control-flow graph.
          /// </summary>
          Nodes: Map<int, View>
  
          /// <summary>
          ///     Set of edges in the control-flow graph.
  