They do work; they just don't integrate with the built-in types: Why should they?
Try instead:
car(cons(1,2))
-> 1
cdr(cons(1,2))
-> 2
car(cons('a', cons(2, 3)))
-> 'a'