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