Edit. Interestingly, the final implementation offered below suffers a flaw. If the arguments supplied to let-syntax are unbalanced, the procedure throws an error. This occurs because let-keywords expects a list constructed only of :key value pairs. A potential solution to this is to filter the list with the predicate keyword?
Inspired by recent journey into lisp and scheme, I thought I’d have a crack at bringing some lisp-like heterogeneous lists into c. To compliment this, I’ll also implement some lisp primitives, namely cons, car and cdr, for list operations. Up for discussion: are the lists in this post truly heterogeneous?