1digraph { 2 compound=true 3 fontname="Inconsolata, Consolas" 4 fontsize=10 5 margin="0,0" 6 ranksep=0.2 7 penwidth=0.5 8 9 node [fontname="Inconsolata, Consolas", fontsize=10, penwidth=0.5] 10 edge [fontname="Inconsolata, Consolas", fontsize=10, arrowhead=normal] 11 12 subgraph cluster1 { 13 margin="10,10" 14 labeljust="left" 15 label = "Before Copying (Hypothetic)" 16 style=filled 17 fillcolor=gray95 18 19 node [shape=Mrecord, style=filled, colorscheme=spectral7] 20 21 c1 [label="{contact:array|}", fillcolor=4] 22 c11 [label="{|}"] 23 c12 [label="{|}"] 24 c13 [shape="none", label="...", style="solid"] 25 o1 [label="{o:object|}", fillcolor=3] 26 ghost [label="{o:object|}", style=invis] 27 28 c1 -> o1 [style="dashed", label="AddMember", constraint=false] 29 30 edge [arrowhead=vee] 31 c1 -> { c11; c12; c13 } 32 o1 -> ghost [style=invis] 33 } 34 35 subgraph cluster2 { 36 margin="10,10" 37 labeljust="left" 38 label = "After Copying (Hypothetic)" 39 style=filled 40 fillcolor=gray95 41 42 node [shape=Mrecord, style=filled, colorscheme=spectral7] 43 44 c2 [label="{contact:array|}", fillcolor=4] 45 c3 [label="{array|}", fillcolor=4] 46 c21 [label="{|}"] 47 c22 [label="{|}"] 48 c23 [shape=none, label="...", style="solid"] 49 o2 [label="{o:object|}", fillcolor=3] 50 cs [label="{string|\"contact\"}", fillcolor=5] 51 c31 [label="{|}"] 52 c32 [label="{|}"] 53 c33 [shape="none", label="...", style="solid"] 54 55 edge [arrowhead=vee] 56 c2 -> { c21; c22; c23 } 57 o2 -> cs 58 cs -> c3 [arrowhead=none] 59 c3 -> { c31; c32; c33 } 60 } 61 ghost -> o2 [style=invis] 62}