# RefGraph.addEdge

Add an edge to the graph.

## Signatures

```ts
export declare const addEdge: {
    <E>(source: Graph.NodeIndex, target: Graph.NodeIndex, data: E): <N, T extends Graph.Kind, Err, R>(ref: RefGraph<N, E, T, Err, R>) => Effect.Effect<Graph.Graph<N, E, T>, Err, R>;
    <N, E, T extends Graph.Kind, Err, R>(ref: RefGraph<N, E, T, Err, R>, source: Graph.NodeIndex, target: Graph.NodeIndex, data: E): Effect.Effect<Graph.Graph<N, E, T>, Err, R>;
};
```

## Why

Add an edge to the graph. The operation remains attached to the RefSubject's versioned state
boundary.

## Ownership and lifetime

Running add edge performs one serialized graph transition and resolves with its committed value.
It acquires no resource; failures and services remain those of the source ref.
