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}