(DEBUG bind-in-order ((#((var-tag) result #t () () #(result #(expr result #f)) #f))))
(INNER DEBUG (#((var-tag) result #t () () #(result #(expr result #f)) #f)) (#((var-tag) result #t () () #(result #(expr result #f)) #f)))


  (define (bind-in-order order)
(write `(DEBUG bind-in-order ,order))
    (if (null? order)
        (pt-body source body env use)
        (let* ((vars-set (car order)) (vars (set->list vars-set)))
(write `(INNER DEBUG ,vars-set ,vars))
ERROR: returned incorrect result: (
"|------------------------------------------------------" 
"| #[primitive #!program] =" 
"L1:" 
" cmpw #1,d0" 
" beq L1000" 
" TRAP1(9,0)" 
" LBL_PTR(L1)" 
"L1000:" 
" MOVE_PROC(2,a1)" 
" movl a1,GLOB(fib)" 
" MOVE_PROC(3,a1)" 
" movl a1,GLOB(tak)" 
" MOVE_PROC(4,a1)" 
" movl a1,GLOB(ack)" 
" MOVE_PROC(5,a1)" 
" movl a1,GLOB(create-x)" 
" MOVE_PROC(6,a1)" 
" movl a1,GLOB(create-y)" 
" MOVE_PROC(7,a1)" 
" movl a1,GLOB(my-try)" 
" MOVE_PROC(8,a1)" 
" movl a1,GLOB(go)" 
" movl a0,sp@-" 
" movl #160,d1" 
" lea L2,a0" 
" dbra d5,L1001" 
" moveq #9,d5" 
" cmpl a5@,sp" 
" bcc L1001" 
" TRAP2(24)" 
" RETURN(L1,1,1)" 
"L1002:" 
"L1001:" 
" JMP_PROC(1,10)" 
" RETURN(L1,1,1)" 
"L2:" 
" movl d1,sp@-" 
" moveq #48,d3" 
" moveq #96,d2" 
" movl #144,d1" 
" lea L3,a0" 
" JMP_PROC(2,14)" 
" RETURN(L1,2,1)" 
"L3:" 
" movl d1,sp@-" 
" moveq #72,d2" 
" moveq #24,d1" 
" lea L4,a0" 
" JMP_PROC(3,10)" 
" RETURN(L1,3,1)" 
"L4:" 
" movl d1,sp@-" 
" movl #1600000,d1" 
" lea L5,a0" 
" JMP_PROC(7,10)" 
" RETURN(L1,4,1)" 
"L5:" 
" dbra d5,L1003" 
" moveq #9,d5" 
" cmpl a5@,sp" 
" bcc L1003" 
" TRAP2(24)" 
" RETURN(L1,4,1)" 
"L1004:" 
"L1003:" 
"L6:" 
" addl sp@(8),d1" 
" addl sp@(4),d1" 
" addl sp@+,d1" 
" rts" 
"L0:" 
"|------------------------------------------------------" 
"| #[primitive fib] =" 
"L1:" 
" bmi L1000" 
" TRAP1(9,1)" 
" LBL_PTR(L1)" 
"L1000:" 
" moveq #16,d0" 
" cmpl d1,d0" 
" ble L3" 
" bra L4" 
" RETURN(L1,2,1)" 
"L2:" 
" movl d1,sp@-" 
" movl sp@(4),d1" 
" moveq #-16,d0" 
" addl d0,d1" 
" lea L5,a0" 
" moveq #16,d0" 
" cmpl d1,d0" 
" bgt L4" 
"L3:" 
" movl a0,sp@-" 
" movl d1,sp@-" 
" subql #8,d1" 
" lea L2,a0" 
" dbra d5,L1001" 
" moveq #9,d5" 
" cmpl a5@,sp" 
" bcc L1001" 
" TRAP2(24)" 
" RETURN(L1,2,1)" 
"L1002:" 
"L1001:" 
" moveq #16,d0" 
" cmpl d1,d0" 
" ble L3" 
"L4:" 
" jmp a0@" 
" RETURN(L1,3,1)" 
"L5:" 
" addl sp@+,d1" 
" dbra d5,L1003" 
" moveq #9,d5" 
" cmpl a5@,sp" 
" bcc L1003" 
" TRAP2(24)" 
" RETURN(L1,2,1)" 
"L1004:" 
"L1003:" 
" rts" 
"L0:" 
"|------------------------------------------------------" 
"| #[primitive tak] =" 
"L1:" 
" cmpw #4,d0" 
" beq L1000" 
" TRAP1(9,3)" 
" LBL_PTR(L1)" 
"L1000:" 
" cmpl d1,d2" 
" bge L4" 
" bra L3" 
" RETURN(L1,6,1)" 
"L2:" 
" movl d1,d3" 
" movl sp@(20),a0" 
" movl sp@+,d2" 
" movl sp@+,d1" 
" dbra d5,L1001" 
" moveq #9,d5" 
" cmpl a5@,sp" 
" bcc L1001" 
" movl a0,sp@(12)" 
" TRAP2(24)" 
" RETURN(L1,4,1)" 
"L1002:" 
" movl sp@(12),a0" 
"L1001:" 
" cmpl d1,d2" 
" bge L4" 
"L3:" 
" movl a0,sp@-" 
" movl d1,sp@-" 
" movl d2,sp@-" 
" movl d3,sp@-" 
" subql #8,d1" 
" lea L5,a0" 
" dbra d5,L1003" 
" moveq #9,d5" 
" cmpl a5@,sp" 
" bcc L1003" 
" TRAP2(24)" 
" RETURN(L1,4,1)" 
"L1004:" 
"L1003:" 
" cmpl d1,d2" 
" blt L3" 
"L4:" 
" movl d3,d1" 
" jmp a0@" 
" RETURN(L1,4,1)" 
"L5:" 
" movl d1,sp@-" 
" movl sp@(12),d3" 
" movl sp@(4),d2" 
" movl sp@(8),d1" 
" subql #8,d1" 
" lea L6,a0" 
" cmpl d1,d2" 
" bge L4" 
" bra L3" 
" RETURN(L1,5,1)" 
"L6:" 
" movl d1,sp@-" 
" movl sp@(12),d3" 
" movl sp@(16),d2" 
" movl sp@(8),d1" 
" subql #8,d1" 
" lea L2,a0" 
" cmpl d1,d2" 
" bge L4" 
" bra L3" 
"L0:" 
"|------------------------------------------------------" 
"| #[primitive ack] =" 
"L1:" 
" beq L1000" 
" TRAP1(9,2)" 
" LBL_PTR(L1)" 
"L1000:" 
" movl d1,d0" 
" bne L3" 
" bra L5" 
" RETURN(L1,2,1)" 
"L2:" 
" movl d1,d2" 
" movl sp@+,d1" 
" subql #8,d1" 
" movl sp@+,a0" 
" dbra d5,L1001" 
" moveq #9,d5" 
" cmpl a5@,sp" 
" bcc L1001" 
" movl a0,sp@-" 
" TRAP2(24)" 
" RETURN(L1,1,1)" 
"L1002:" 
" movl sp@+,a0" 
"L1001:" 
" movl d1,d0" 
" beq L5" 
"L3:" 
" movl d2,d0" 
" bne L6" 
"L4:" 
" subql #8,d1" 
" moveq #8,d2" 
" dbra d5,L1003" 
" moveq #9,d5" 
" cmpl a5@,sp" 
" bcc L1003" 
" movl a0,sp@-" 
" TRAP2(24)" 
" RETURN(L1,1,1)" 
"L1004:" 
" movl sp@+,a0" 
"L1003:" 
" movl d1,d0" 
" bne L3" 
"L5:" 
" movl d2,d1" 
" addql #8,d1" 
" jmp a0@" 
"L6:" 
" movl a0,sp@-" 
" movl d1,sp@-" 
" movl d2,d1" 
" subql #8,d1" 
" movl d1,d2" 
" movl sp@,d1" 
" lea L2,a0" 
" dbra d5,L1005" 
" moveq #9,d5" 
" cmpl a5@,sp" 
" bcc L1005" 
" TRAP2(24)" 
" RETURN(L1,2,1)" 
"L1006:" 
"L1005:" 
" movl d1,d0" 
" bne L3" 
" bra L5" 
"L0:" 
"|------------------------------------------------------" 
"| #[primitive create-x] =" 
"L1:" 
" bmi L1000" 
" TRAP1(9,1)" 
" LBL_PTR(L1)" 
"L1000:" 
" movl a0,sp@-" 
" movl d1,sp@-" 
" lea L2,a0" 
" dbra d5,L1001" 
" moveq #9,d5" 
" cmpl a5@,sp" 
" bcc L1001" 
" TRAP2(24)" 
" RETURN(L1,2,1)" 
"L1002:" 
"L1001:" 
" moveq #-1,d0" 
" JMP_PRIM(make-vector,0)" 
" RETURN(L1,2,1)" 
"L2:" 
" movl d1,d2" 
" movl sp@+,d1" 
" moveq #0,d3" 
" movl sp@+,a0" 
" dbra d5,L1003" 
" moveq #9,d5" 
" cmpl a5@,sp" 
" bcc L1003" 
" movl a0,sp@-" 
" TRAP2(24)" 
" RETURN(L1,1,1)" 
"L1004:" 
" movl sp@+,a0" 
"L1003:" 
" cmpl d1,d3" 
" bge L4" 
"L3:" 
" movl d3,d0" 
" asrl #1,d0" 
" movl d2,a1" 
" movl d3,a1@(1,d0:l)" 
" addql #8,d3" 
" dbra d5,L1005" 
" moveq #9,d5" 
" cmpl a5@,sp" 
" bcc L1005" 
" movl a0,sp@-" 
" TRAP2(24)" 
" RETURN(L1,1,1)" 
"L1006:" 
" movl sp@+,a0" 
"L1005:" 
" cmpl d1,d3" 
" blt L3" 
"L4:" 
" movl d2,d1" 
" jmp a0@" 
"L0:" 
"|------------------------------------------------------" 
"| #[primitive create-y] =" 
"L1:" 
" bmi L1000" 
" TRAP1(9,1)" 
" LBL_PTR(L1)" 
"L1000:" 
" movl d1,a1" 
" movl a1@(-3),d2" 
" lsrl #7,d2" 
" movl a0,sp@-" 
" movl d1,sp@-" 
" movl d2,sp@-" 
" movl d2,d1" 
" lea L2,a0" 
" dbra d5,L1001" 
" moveq #9,d5" 
" cmpl a5@,sp" 
" bcc L1001" 
" TRAP2(24)" 
" RETURN(L1,3,1)" 
"L1002:" 
"L1001:" 
" moveq #-1,d0" 
" JMP_PRIM(make-vector,0)" 
" RETURN(L1,3,1)" 
"L2:" 
" movl sp@+,d2" 
" subql #8,d2" 
" movl d2,d3" 
" movl d1,d2" 
" movl sp@+,d1" 
" movl sp@+,a0" 
" dbra d5,L1003" 
" moveq #9,d5" 
" cmpl a5@,sp" 
" bcc L1003" 
" movl a0,sp@-" 
" TRAP2(24)" 
" RETURN(L1,1,1)" 
"L1004:" 
" movl sp@+,a0" 
"L1003:" 
" movl d3,d0" 
" blt L4" 
"L3:" 
" movl d3,d0" 
" asrl #1,d0" 
" movl d1,a1" 
" movl a1@(1,d0:l),d4" 
" movl d3,d0" 
" asrl #1,d0" 
" movl d2,a1" 
" movl d4,a1@(1,d0:l)" 
" subql #8,d3" 
" dbra d5,L1005" 
" moveq #9,d5" 
" cmpl a5@,sp" 
" bcc L1005" 
" movl a0,sp@-" 
" TRAP2(24)" 
" RETURN(L1,1,1)" 
"L1006:" 
" movl sp@+,a0" 
"L1005:" 
" movl d3,d0" 
" bge L3" 
"L4:" 
" movl d2,d1" 
" jmp a0@" 
"L0:" 
"|------------------------------------------------------" 
"| #[primitive my-try] =" 
"L1:" 
" bmi L1000" 
" TRAP1(9,1)" 
" LBL_PTR(L1)" 
"L1000:" 
" movl a0,sp@-" 
" lea L2,a0" 
" dbra d5,L1001" 
" moveq #9,d5" 
" cmpl a5@,sp" 
" bcc L1001" 
" TRAP2(24)" 
" RETURN(L1,1,1)" 
"L1002:" 
"L1001:" 
" JMP_PROC(4,10)" 
" RETURN(L1,1,1)" 
"L2:" 
" lea L3,a0" 
" JMP_PROC(5,10)" 
" RETURN(L1,1,1)" 
"L3:" 
" movl d1,a1" 
" movl a1@(-3),d1" 
" lsrl #7,d1" 
" dbra d5,L1003" 
" moveq #9,d5" 
" cmpl a5@,sp" 
" bcc L1003" 
" TRAP2(24)" 
" RETURN(L1,1,1)" 
"L1004:" 
"L1003:" 
" rts" 
"L0:" 
"|------------------------------------------------------" 
"| #[primitive go] =" 
"L1:" 
" bmi L1000" 
" TRAP1(9,1)" 
" LBL_PTR(L1)" 
"L1000:" 
" moveq #0,d3" 
" movl #800,d2" 
" dbra d5,L1001" 
" moveq #9,d5" 
" cmpl a5@,sp" 
" bcc L1001" 
" movl a0,sp@-" 
" TRAP2(24)" 
" RETURN(L1,1,1)" 
"L1002:" 
" movl sp@+,a0" 
"L1001:" 
" movl d2,d0" 
" ble L4" 
" bra L3" 
" RETURN(L1,3,1)" 
"L2:" 
" movl d1,d3" 
" movl sp@+,d1" 
" subql #8,d1" 
" movl d1,d2" 
" movl sp@+,d1" 
" movl sp@+,a0" 
" dbra d5,L1003" 
" moveq #9,d5" 
" cmpl a5@,sp" 
" bcc L1003" 
" movl a0,sp@-" 
" TRAP2(24)" 
" RETURN(L1,1,1)" 
"L1004:" 
" movl sp@+,a0" 
"L1003:" 
" movl d2,d0" 
" ble L4" 
"L3:" 
" movl a0,sp@-" 
" movl d1,sp@-" 
" movl d2,sp@-" 
" lea L2,a0" 
" dbra d5,L1005" 
" moveq #9,d5" 
" cmpl a5@,sp" 
" bcc L1005" 
" TRAP2(24)" 
" RETURN(L1,3,1)" 
"L1006:" 
"L1005:" 
" JMP_PROC(6,10)" 
"L4:" 
" movl d3,d1" 
" jmp a0@" 
"L0:" 
"")
