Types are better regarded as a static property of a program. In some (statically) typed language you can declare a type like
type Index = Int
aliasing Index to the integer type. The representation of Index will be exactly the representation of an Int and a runtime you won't be able to tell them apart. At compile time, however, you won't be able to use an Index where an Int is expected and vice versa.
Common Lisp is better described as a safe language. Programs will only fail in defined ways. C is an unsafe language -- once you go off the rails anything can happen.
Common Lisp is better described as a safe language. Programs will only fail in defined ways. C is an unsafe language -- once you go off the rails anything can happen.