added compile-time type info for expressions