digraph workshops {
//  clusterrank=none;
  ranksep=1;
  node [fixedsize=true,fontsize=9,height=.3];
  edge [labeldistance=0,fontsize=9,arrowsize=.5];

  subgraph cluster_simple {
    node [width=.4];
    simple_a [label="$\\zinp a \\zerop$"];
    simple_zero [label="$\\zerop$"];

    simple_a -> simple_zero [label="\\ja"];
  }

  subgraph cluster_fancy {
    node [width=.7];
    fancy_AB    [label="$\\newp b {(A \\parp B)}$"];
    fancy_B   [label="$\\newp b {B}$"];
    fancy_A     [label="$\\newp b {A}$"];
    fancy_zero  [label="$\\newp b {\\zerop}$"];

    fancy_AB -> fancy_B [label="\\ja"];
    fancy_AB -> fancy_AB [label="\\jt"];
    fancy_AB -> fancy_A [label="\\jt"];

    fancy_B -> fancy_zero [label="\\jt"];

    fancy_A -> fancy_zero [label="\\ja"];

  }

  edge [style=dashed,color=red,dir=none];

  fancy_AB -> simple_a;
  fancy_B -> simple_zero;
  fancy_zero -> simple_zero;
  fancy_A -> simple_a;

  {rank=same;   "fancy_AB"; "simple_a";}
}
