In dynamically typed languages such as Python, a variable's type is inferred by its value, and can change according to its value. In Common Lisp, both situations exist simultaneously: A variable is given a type (if undeclared, it is assumed to be , the universal supertype) which exists at compile time. Values also have types, which can be checked and queried at runtime.
