Most current Common Lisp compilers generate more efficient code when supplied with data type information. However, in keeping with standard Lisp programming style, most programmers are reluctant to provide type information; they simply allow the run-time type system to manage the data types accordingly. To fill this gap, we have designed and implemented a type inference system €or Common Lisp (TICL). TICL takes a Lisp program that has been annotated with a few type declarations, adds as many declarations as possible, and produces a type declared program. The compiler can then use this information to generate more efficient code. Measurements indicate that a 20 per cent speed improvement can generally be achieved.*In many contexts, it is inappropriate to assume that all integers are fixnurns; (fib 50) would result in a bignurn in many Lisp systems. However, if the programmer desires, there are ways of informing TICL to ignore certain types, such as bignum, as was done in this example. This gives the Lisp programmer the ability to get the efficiency of languages like C and Pascal.