(ASSEMBLE.CLAUSE ( compare 3 si ) 37
    (allocate)
    (get.Ai.variable.Yn 1 1)
    (put.Ai.value.Xn 1 2)
    (put.Ai.value.Xn 2 3)
    (compare)
    (store.variable.Yn 2)
    (load.value.Yn 2)
    (load.pos.word 0)
    (less.than.else 22)
    (put.Ai.value.Yn 1 1)
    (get.Ai.constant 1 %<)
    (progress)
    (load.value.Yn 2)
    (load.pos.word 0)
    (greater.than.else 33)
    (put.Ai.value.Yn 1 1)
    (get.Ai.constant 1 %>)
    (progress)
    (put.Ai.value.Yn 1 1)
    (get.Ai.constant 1 %=)
    (progress)
)

(ASSEMBLE.CLAUSE ( %@%< 2 si ) 5
    (compare)
    (load.pos.word 0)
    (less.than)
    (proceed)
)

(ASSEMBLE.CLAUSE ( %@%> 2 si ) 5
    (compare)
    (load.pos.word 0)
    (greater.than)
    (proceed)
)

(ASSEMBLE.CLAUSE ( %@%=%< 2 si ) 5
    (compare)
    (load.pos.word 0)
    (not.greater.than)
    (proceed)
)

(ASSEMBLE.CLAUSE ( %@%>%= 2 si ) 5
    (compare)
    (load.pos.word 0)
    (not.less.than)
    (proceed)
)

(ASSEMBLE.CLAUSE ( comprise 6 si ) 15
    (get.Ai.list 1)
    (unify.variable.Xn 7)
    (unify.variable.Xn 1)
    (get.Ai.value.Xn 2 7)
    (get.Ai.value.Xn 3 1)
    (get.Ai.list 4)
    (unify.variable.Xn 2)
    (unify.variable.Xn 1)
    (get.Ai.value.Xn 5 2)
    (get.Ai.value.Xn 6 1)
    (proceed)
)

(ASSEMBLE.CLAUSE ( proper←length 3 si ) 6
    (get.Ai.constant 1 NIL)
    (get.Ai.value.Xn 3 2)
    (proceed)
)

(ASSEMBLE.CLAUSE ( proper←length 3 si ) 21
    (get.Ai.list 1)
    (unify.void 1)
    (allocate)
    (unify.variable.Yn 1)
    (get.Ai.variable.Yn 2 3)
    (get.Ai.variable.Yn 3 2)
    (put.Ai.value.Yn 1 1)
    (is.a 254)
    (load.value.Yn 3)
    (add.pos.word 1)
    (store.variable.Xn 2)
    (put.Ai.value.Yn 3 2)
    (put.Ai.value.Yn 1 1)
    (depart proper←length 3 si)
)

(ASSEMBLE.CLAUSE ( sort 2 si ) 34
    (allocate)
    (get.Ai.variable.Yn 1 4)
    (get.Ai.variable.Yn 2 1)
    (put.Ai.value.Yn 1 4)
    (is.a 254)
    (put.Ai.variable.Yn 3 3)
    (put.Ai.constant 2 0)
    (put.Ai.value.Yn 1 4)
    (call 7 proper←length 3 si)
    (body.cut)
    (put.Ai.variable.Yn 4 2)
    (put.Ai.void 3)
    (put.Ai.value.Yn 2 4)
    (put.Ai.unsafe.Yn 1 3)
    (call 5 sort 4 si)
    (put.Ai.unsafe.Yn 1 2)
    (get.Ai.value.Yn 1 1)
    (progress)
)

(ASSEMBLE.CLAUSE ( sort 2 si ) 12
    (put.Ai.value.Xn 3 2)
    (put.Ai.structure 2 sort 2)
    (unify.local.Xn 1)
    (unify.local.Xn 3)
    (put.Ai.constant 1 521)
    (execute nerror 2 si)
)

(ASSEMBLE.CLAUSE ( sort 4 si ) 52
    (get.Ai.constant 1 2)
    (get.Ai.list 2)
    (allocate)
    (unify.variable.Yn 1)
    (unify.list)
    (unify.variable.Yn 3)
    (unify.variable.Xn 1)
    (get.Ai.value.Xn 3 1)
    (get.Ai.variable.Yn 4 2)
    (head.cut)
    (put.Ai.value.Yn 2 3)
    (put.Ai.value.Yn 1 1)
    (compare)
    (store.variable.Yn 4)
    (load.value.Yn 4)
    (load.pos.word 0)
    (less.than.else 35)
    (put.Ai.value.Yn 1 2)
    (get.Ai.list 1)
    (unify.value.Yn 1)
    (unify.list)
    (unify.value.Yn 3)
    (unify.nil)
    (progress)
    (load.value.Yn 4)
    (load.pos.word 0)
    (greater.than.else 48)
    (put.Ai.value.Yn 1 2)
    (get.Ai.list 1)
    (unify.value.Yn 3)
    (unify.list)
    (unify.value.Yn 1)
    (unify.nil)
    (progress)
    (put.Ai.value.Yn 1 2)
    (get.Ai.list 1)
    (unify.value.Yn 1)
    (unify.nil)
    (progress)
)

(ASSEMBLE.CLAUSE ( sort 4 si ) 12
    (get.Ai.constant 1 1)
    (get.Ai.list 2)
    (unify.variable.Xn 1)
    (unify.variable.Xn 2)
    (get.Ai.value.Xn 3 2)
    (get.Ai.list 4)
    (unify.value.Xn 1)
    (unify.nil)
    (cut.proceed)
)

(ASSEMBLE.CLAUSE ( sort 4 si ) 7
    (get.Ai.constant 1 0)
    (get.Ai.value.Xn 3 2)
    (get.Ai.nil 4)
    (cut.proceed)
)

(ASSEMBLE.CLAUSE ( sort 4 si ) 42
    (allocate)
    (get.Ai.variable.Yn 3 6)
    (get.Ai.variable.Yn 4 3)
    (load.value.Xn 1)
    (load.pos.word 1)
    (right.shift)
    (store.variable.Xn 5)
    (load.value.Xn 1)
    (load.value.Xn 5)
    (subtract)
    (store.variable.Yn 4)
    (put.Ai.variable.Yn 4 1)
    (put.Ai.variable.Yn 3 5)
    (put.Ai.value.Xn 1 5)
    (call 9 sort 4 si)
    (put.Ai.variable.Yn 4 2)
    (put.Ai.value.Yn 3 6)
    (put.Ai.unsafe.Yn 2 5)
    (put.Ai.value.Yn 1 4)
    (call 6 sort 4 si)
    (put.Ai.value.Yn 3 3)
    (put.Ai.unsafe.Yn 2 2)
    (put.Ai.unsafe.Yn 1 1)
    (depart merge 3 si)
)

(ASSEMBLE.CLAUSE ( merge 3 si ) 6
    (get.Ai.constant 1 NIL)
    (get.Ai.value.Xn 3 2)
    (cut.proceed)
)

(ASSEMBLE.CLAUSE ( merge 3 si ) 4
    (get.Ai.nil 2)
    (get.Ai.value.Xn 3 1)
    (cut.proceed)
)

(ASSEMBLE.CLAUSE ( merge 3 si ) 75
    (allocate)
    (get.Ai.variable.Yn 1 6)
    (get.Ai.variable.Yn 2 9)
    (get.Ai.list 3)
    (unify.variable.Yn 4)
    (unify.variable.Yn 3)
    (put.Ai.variable.Yn 6 2)
    (put.Ai.variable.Yn 5 7)
    (put.Ai.value.Yn 4 9)
    (put.Ai.variable.Yn 3 1)
    (put.Ai.variable.Yn 2 5)
    (put.Ai.value.Yn 1 6)
    (call 12 comprise 6 si)
    (put.Ai.value.Yn 2 7)
    (put.Ai.value.Yn 1 5)
    (compare)
    (store.variable.Yn 8)
    (load.value.Yn 8)
    (load.pos.word 0)
    (less.than.else 48)
    (put.Ai.value.Yn 1 5)
    (get.Ai.value.Yn 1 4)
    (put.Ai.value.Yn 3 3)
    (put.Ai.value.Yn 2 9)
    (put.Ai.value.Yn 1 1)
    (depart merge 3 si)
    (load.value.Yn 8)
    (load.pos.word 0)
    (greater.than.else 65)
    (put.Ai.unsafe.Yn 1 7)
    (get.Ai.value.Yn 1 4)
    (put.Ai.value.Yn 3 3)
    (put.Ai.value.Yn 2 2)
    (put.Ai.value.Yn 1 6)
    (depart merge 3 si)
    (put.Ai.unsafe.Yn 1 5)
    (get.Ai.value.Yn 1 4)
    (put.Ai.value.Yn 3 3)
    (put.Ai.unsafe.Yn 2 2)
    (put.Ai.unsafe.Yn 1 1)
    (depart merge 3 si)
)

(ASSEMBLE.CLAUSE ( keysort 2 si ) 34
    (allocate)
    (get.Ai.variable.Yn 1 4)
    (get.Ai.variable.Yn 2 1)
    (put.Ai.value.Yn 1 4)
    (is.a 254)
    (put.Ai.variable.Yn 3 3)
    (put.Ai.constant 2 0)
    (put.Ai.value.Yn 1 4)
    (call 7 proper←length 3 si)
    (body.cut)
    (put.Ai.variable.Yn 4 2)
    (put.Ai.void 3)
    (put.Ai.value.Yn 2 4)
    (put.Ai.unsafe.Yn 1 3)
    (call 5 keysort 4 si)
    (put.Ai.unsafe.Yn 1 2)
    (get.Ai.value.Yn 1 1)
    (progress)
)

(ASSEMBLE.CLAUSE ( keysort 2 si ) 12
    (put.Ai.value.Xn 3 2)
    (put.Ai.structure 2 keysort 2)
    (unify.local.Xn 1)
    (unify.local.Xn 3)
    (put.Ai.constant 1 521)
    (execute nerror 2 si)
)

(ASSEMBLE.CLAUSE ( keysort 4 si ) 45
    (get.Ai.constant 1 2)
    (get.Ai.list 2)
    (allocate)
    (unify.variable.Yn 2)
    (unify.list)
    (unify.variable.Yn 1)
    (unify.variable.Xn 1)
    (get.Ai.value.Xn 3 1)
    (get.Ai.variable.Yn 4 3)
    (head.cut)
    (load.choice.point)
    (store.variable.Yn 4)
    (either 7 38)
    (put.Ai.value.Yn 2 1)
    (put.Ai.value.Yn 1 2)
    (call 7 key←greater 2 si)
    (load.value.Yn 4)
    (cut.to.choice.point)
    (put.Ai.value.Yn 1 3)
    (get.Ai.list 1)
    (unify.value.Yn 1)
    (unify.list)
    (unify.value.Yn 2)
    (unify.nil)
    (progress)
    (or.finally)
    (put.Ai.value.Yn 1 3)
    (get.Ai.list 1)
    (unify.value.Yn 2)
    (unify.list)
    (unify.value.Yn 1)
    (unify.nil)
    (progress)
)

(ASSEMBLE.CLAUSE ( keysort 4 si ) 12
    (get.Ai.constant 1 1)
    (get.Ai.list 2)
    (unify.variable.Xn 1)
    (unify.variable.Xn 2)
    (get.Ai.value.Xn 3 2)
    (get.Ai.list 4)
    (unify.value.Xn 1)
    (unify.nil)
    (cut.proceed)
)

(ASSEMBLE.CLAUSE ( keysort 4 si ) 7
    (get.Ai.constant 1 0)
    (get.Ai.value.Xn 3 2)
    (get.Ai.nil 4)
    (cut.proceed)
)

(ASSEMBLE.CLAUSE ( keysort 4 si ) 42
    (allocate)
    (get.Ai.variable.Yn 3 6)
    (get.Ai.variable.Yn 4 3)
    (load.value.Xn 1)
    (load.pos.word 1)
    (right.shift)
    (store.variable.Xn 5)
    (load.value.Xn 1)
    (load.value.Xn 5)
    (subtract)
    (store.variable.Yn 4)
    (put.Ai.variable.Yn 4 1)
    (put.Ai.variable.Yn 3 5)
    (put.Ai.value.Xn 1 5)
    (call 9 keysort 4 si)
    (put.Ai.variable.Yn 4 2)
    (put.Ai.value.Yn 3 6)
    (put.Ai.unsafe.Yn 2 5)
    (put.Ai.value.Yn 1 4)
    (call 6 keysort 4 si)
    (put.Ai.value.Yn 3 3)
    (put.Ai.unsafe.Yn 2 2)
    (put.Ai.unsafe.Yn 1 1)
    (depart keymerge 3 si)
)

(ASSEMBLE.CLAUSE ( keymerge 3 si ) 6
    (get.Ai.constant 1 NIL)
    (get.Ai.value.Xn 3 2)
    (cut.proceed)
)

(ASSEMBLE.CLAUSE ( keymerge 3 si ) 4
    (get.Ai.nil 2)
    (get.Ai.value.Xn 3 1)
    (cut.proceed)
)

(ASSEMBLE.CLAUSE ( keymerge 3 si ) 62
    (allocate)
    (get.Ai.variable.Yn 1 6)
    (get.Ai.variable.Yn 2 2)
    (get.Ai.list 3)
    (unify.variable.Yn 4)
    (unify.variable.Yn 3)
    (put.Ai.variable.Yn 6 7)
    (put.Ai.variable.Yn 5 8)
    (put.Ai.value.Yn 4 2)
    (put.Ai.variable.Yn 3 1)
    (put.Ai.variable.Yn 2 5)
    (put.Ai.value.Yn 1 6)
    (call 12 comprise 6 si)
    (load.choice.point)
    (store.variable.Yn 9)
    (either 12 51)
    (put.Ai.value.Yn 2 8)
    (put.Ai.value.Yn 1 5)
    (call 12 key←greater 2 si)
    (load.value.Yn 9)
    (cut.to.choice.point)
    (put.Ai.unsafe.Yn 1 8)
    (get.Ai.value.Yn 1 4)
    (put.Ai.value.Yn 3 3)
    (put.Ai.unsafe.Yn 2 7)
    (put.Ai.value.Yn 1 6)
    (depart keymerge 3 si)
    (or.finally)
    (put.Ai.unsafe.Yn 1 5)
    (get.Ai.value.Yn 1 4)
    (put.Ai.value.Yn 3 3)
    (put.Ai.value.Yn 2 2)
    (put.Ai.unsafe.Yn 1 1)
    (depart keymerge 3 si)
)

(ASSEMBLE.CLAUSE ( key←greater 2 si ) 15
    (get.Ai.structure 1 %- 2)
    (unify.variable.Xn 1)
    (unify.void 1)
    (get.Ai.structure 2 %- 2)
    (unify.variable.Xn 2)
    (unify.void 1)
    (compare)
    (load.pos.word 0)
    (greater.than)
    (proceed)
)

STOP