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