(define (list-with-insertion lst idx val) (append (take lst idx) (cons val (drop lst idx)))) ; i coulda sworn one of the tests failed with this version... i guess not