make destructuring work nicely with conses
add a REPL