You might also want to use evcase (in the FULL languages, you must (require-library "macro.ss") for this to work). It works almost as you expect: (evcase 'toto [(list 'toto) "toto"] [else 'foo]) The "question" position of each branch must evaluate to a list and the elements of that list are compared with eqv? to the first argument to evcase. Hope that helps. Robby