merge
nil
y
y
merge
x
nil
x
merge
.
x
y
.
u
v
if
<
x
u
.
x
merge
y
.
u
v
.
u
merge
.
x
y
v
++
nil
y
y
++
.
x
y
z
.
x
++
y
z
if
true
x
y
x
if
false
x
y
x
2.2
merge
.
x
y
.
u
v
if
<
x
u
.
x
merge
y
.
u
v
.
u
merge
.
x
y
v
merge
.
x
y
.
u
v
merge
y
.
u
v
++
.
x
y
z
++
y
z
merge
.
x
y
.
u
v
merge
.
x
y
v
true
++
.
x
y
z
++
y
z
true
merge
2
0
<
2
0
++
2
0
false
0
0
merge
2
0
true
0
0
if
3
0
++
2
1
0
nil
0
0
.
2
2
1
if
3
0
merge
.
x
y
.
u
v
merge
.
x
y
v
merge
.
x
y
.
u
v
merge
y
.
u
v
true
merge
2
0
<
2
0
++
2
0
false
0
0
merge
2
1
0
true
0
0
if
3
0
++
2
0
nil
0
0
.
2
2
1
if
3
0
merge
.
x
y
.
u
v
merge
.
x
y
v
merge
.
x
y
.
u
v
merge
.
x
y
v
true
merge
2
0
<
2
0
++
2
0
false
0
0
merge
2
2
0
true
0
0
if
3
0
++
2
0
nil
0
0
.
2
2
1
if
3
0
merge
.
x
y
.
u
v
if
<
x
u
.
x
merge
y
.
u
v
.
u
merge
.
x
y
v
false
NaTT
certifiable-1.6