($ a [1 true 2]) (assert-eq? 1 (ref a 0)) (assert-eq? true (ref a 1)) (assert-eq? 2 (ref a 2)) ($ b [[2 4 6] [8 10 12] [14 16 18]]) (assert-eq? 12 (ref b 1 2)) (assert-eq? true (empty? [])) (assert-eq? false (empty? [1])) (assert-eq? 7 (head [7 3 1])) (assert-eq? 3 (ref (tail [7 3 1]) 0)) (assert-eq? 1 (ref (tail [7 3 1]) 1)) ($ (c arr) (if (empty? arr) 0 (+ (head arr) (c (tail arr))))) (assert-eq? 13 (c [2 4 6 1])) ($ d (cons 2 (cons 4 [6]))) (assert-eq? 2 (ref d 0)) (assert-eq? 4 (ref d 1)) (assert-eq? 6 (ref d 2)) (assert-eq? 3 (len d)) (assert-eq? 4 (len (cons 18 d)))