(ASSEMBLE.CLAUSE ( module 1 si ) 4
    (allocate)
    (is.a 1)
    (body.cut)
    (fail)
)

(ASSEMBLE.CLAUSE ( module 1 si ) 5
    (allocate)
    (call 3 current←module 1 si)
    (depart.cut)
)

(ASSEMBLE.CLAUSE ( module 1 si ) 24
    (allocate)
    (get.Ai.variable.Yn 1 1)
    (put.Ai.symbol 3 si)
    (put.Ai.constant 2 1)
    (put.Ai.symbol 1 current←module)
    (call 4 abolish 3 si)
    (put.Ai.symbol 2 si)
    (put.Ai.structure 1 current←module 1)
    (unify.local.Yn 1)
    (call 3 c←assert 2 si)
    (depart mode←line←changed 0 si)
)

(ASSEMBLE.CLAUSE ( predicate 4 si ) 26
    (allocate)
    (get.Ai.variable.Yn 1 1)
    (get.Ai.variable.Yn 2 2)
    (get.Ai.variable.Yn 4 4)
    (put.Ai.variable.Yn 4 3)
    (put.Ai.value.Yn 2 2)
    (put.Ai.value.Yn 1 1)
    (call 7 predicate←module1 4 si)
    (put.Ai.value.Yn 4 4)
    (put.Ai.unsafe.Yn 3 3)
    (put.Ai.value.Yn 2 2)
    (put.Ai.value.Yn 1 1)
    (depart local←predicate 4 si)
)

(ASSEMBLE.CLAUSE ( check←predicate 4 si ) 32
    (allocate)
    (get.Ai.variable.Yn 1 2)
    (get.Ai.variable.Yn 2 3)
    (get.Ai.variable.Yn 4 1)
    (put.Ai.variable.Yn 4 4)
    (put.Ai.value.Yn 2 3)
    (put.Ai.value.Yn 1 2)
    (call 7 predicate←module1 4 si)
    (put.Ai.value.Yn 4 1)
    (put.Ai.unsafe.Yn 3 4)
    (put.Ai.value.Yn 2 3)
    (put.Ai.value.Yn 1 2)
    (call 4 p←check←predicate 4 si)
    (load.value.Yn 1)
    (load.pos.word 0)
    (not.equal.to)
    (progress)
)

(ASSEMBLE.CLAUSE ( local←check←predicate 4 si ) 13
    (allocate)
    (get.Ai.variable.Yn 4 1)
    (put.Ai.value.Yn 4 1)
    (call 4 p←check←predicate 4 si)
    (load.value.Yn 1)
    (load.pos.word 0)
    (not.equal.to)
    (progress)
)

(ASSEMBLE.CLAUSE ( predicate←module 4 si ) 13
    (allocate)
    (get.Ai.variable.Yn 4 2)
    (put.Ai.variable.Yn 4 1)
    (call 5 predicate←module1 4 si)
    (put.Ai.value.Yn 1 2)
    (get.Ai.value.Yn 1 1)
    (progress)
)

(ASSEMBLE.CLAUSE ( predicate←module1 4 si ) 7
    (put.Ai.value.Xn 3 4)
    (allocate)
    (call 3 user 3 si)
    (depart.cut)
)

(ASSEMBLE.CLAUSE ( predicate←module1 4 si ) 5
    (get.Ai.symbol 3 user)
    (get.Ai.symbol 4 user)
    (cut.proceed)
)

(ASSEMBLE.CLAUSE ( predicate←module1 4 si ) 7
    (put.Ai.value.Xn 3 4)
    (allocate)
    (call 3 global 3 si)
    (depart.cut)
)

(ASSEMBLE.CLAUSE ( predicate←module1 4 si ) 3
    (get.Ai.value.Xn 4 3)
    (proceed)
)

STOP