(define foo
   (lambda [x]
      (if (null x)
          x
          ((lambda [x y] $false) (foo (rest x)) (foo (rest x))))))
          

(define iota
   (lambda [n]
      (iota-aux n [])))

(define iota-aux
   (lambda [m l]
      (if (zero m)
          l
          (iota-aux (1- m) (cons m l)))))
          
(define none (iota 0))
(define one (iota 1))
(define two (iota 2))
(define three (iota 3))
(define four (iota 4))
(define five (iota 5))
(define seven (iota 7))
(define ten (iota 10))

(foo none)
(foo one)
(foo two)
(foo three)
(foo four)
(foo five)
(foo seven)
(foo ten)


(define fee
   (lambda [n]
      (if (zero n)
          n
          (+ (fee (- n 1)) (fee (- n 1))))))
(fee 0)
(fee 1)
(fee 2)
(fee 3)
(fee 4)
(fee 5)
(fee 7)