I have the following relatively complex edge statement:

```
graph {
{a, b -- c} -- d
}
```

I’d expect this to be equivalent to:

```
graph {
a -- d;
b -- c;
b -- d;
c -- d;
}
```

That is: link all the node ids found on the left of the `--`

to all the node ids found on its right.

What actually happens is:

```
graph {
a -- c;
a -- d;
b -- c;
b -- d;
c -- d;
}
```

There’s an unexpected (by me) edge statement in there: `a -- c`

.

Is this expected behaviour? If so, could anyone link to how such complex edge statements are expanded, so that I can learn this rather than build (obviously incorrect) heuristics?