digraph fig7 {
  node [shape=rect]
  edge [dir=none]

  subgraph compound1 {
  a [label="LFILE"]
    b [label="*\rLREC"]
    c [label="o\rMATCHED LREC"]
    d [label="o\rUNMATCHED LREC"]

    a -> {b}
    b -> {c d}
  }

  subgraph compound2 {
    e [label="RFILE"]
    f [label="*\rRREC"]
    g [label="o\rMATCHED RREC"]
    h [label="o\rUNMATCHED RREC"]

    e -> {f}
    f -> {g h}
  }

  subgraph compound3 {
    i [label="REPORT"]
    j [label="*\rLINE"]
    k [label="o\rTYPE 1"]
    l [label="o\rTYPE 2"]
    m [label="o\rTYPE 3"]
    n [label="o\rTYPE 4"]

    i -> {j}
    j -> {k l m n}
  }

  {rank=same a e i}
  {rank=same b f j}
  {rank=same c d  g h  k l m n}

  subgraph correspondences {
    edge [dir=both]

    a -> e
    e -> i

    c -> g:s
    d -> l:s
    g -> k:s
    h -> m:s
  }
}