Introduction to Type Systems