functions don't go through Ffuncall/funcall_lambda/exec_byte_code but instead
stay within exec_byte_code.
-** Add new 'switch' byte-code
-This byte-code would take one argument from the stack (the object to test)
-and one argument from the constant-pool (a switch table, implemented as an
-'eq' hash table) and would jump to the "label" contained in the hash table.
-
-Then add a 'case' special-form that can be compiled to this byte-code.
-This would behave just like cl-case, but instead of expanding to cond+eq it
-would be its own special form and would be compiled specially.
-
-Then change pcase to use 'case' when applicable.
-
-Then change the byte-compiler to recognize (cond ((eq x 'foo) bar) ...)
-and turn it into a 'case' for more efficient execution.
-
** Improve the byte-compiler to recognize immutable (lexical) bindings
and get rid of them if they're used only once and/or they're bound to
a constant expression.