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?