The way I see it is that the &quot;killer feature&quot; of Lisps is the macro system and macros fit more naturally in an untyped setting. In a way, macros are kind of a &quot;compile-time eval&quot; and eval is one of those functions that is very hard to statically type.