title: Positioning Nodes With `{rank=same ...}` Side Effects
body: <p>I have a graph defined as such:</p>
  
  <pre><code>digraph G {
      rankdir=LR
      node[shape=circle]
      q_[shape=none label=""]
      q3[shape=doublecircle]
      q4[shape=doublecircle]
      q_-&gt;q0
      q0-&gt;q1[label="λ"]
      q0-&gt;q2-&gt;q4[label=a]
      q1-&gt;q4-&gt;q2[label=b]
      q1-&gt;q3[label=a]
      q3-&gt;q4[label="λ"]
      {rank=same; q4 q3}
      {rank=same; q1 q2}
  }
  </code></pre>
  
  <p>The graph outputs the following image:</p>
  
  <p><img src="https://i.stack.imgur.com/LbwGp.png" alt="enter image description here"></p>
  
  <p>You can play with the graph here: <a href="http://graph.gafol.net/derive/effpjWfSD" rel="noreferrer">http://graph.gafol.net/derive/effpjWfSD</a></p>
  
  <p>My question is:</p>
  
  <p>Why is q4 pointing to q3 in the rendered graph and not the way I specified it in the markup? Is it because <code>{rank=same; q4 q3}</code> has more semantic meaning than just positioning nodes? If that is the case, how can I position the nodes so that the output is not as hideous as the output is without using <code>{rank=same; ...}</code>?</p>