(define bst-layout
(lambda (tree) (let loop ((t tree) (depth 1)) (match t [(node k lt rt) (cons (list k (size lt) depth) (append (loop lt (+ depth 1)) (loop rt (+ depth 1))))] ['nil '()]))))
(define size
(lambda (t) (match t [(node k lt rt) (+ 1 (size lt) (size rt))] ['nil 0])))