Static types are great for making programs safer and easier to understand. However, explicitly stating the type of every variable and expression in your program can clutter it to the point of unreadability.
Most statically typed functional languages allow you to omit type annotations in many places (or most places, or all, depending on the language), because the compiler can infer the types from context. The most widely used algorithm for type inference (also called "type reconstruction") is known as Hindley-Milner.
I'll do a brief presentation on Hindley-Milner type inference, and then show type inference at work in an interpreter for a polymorphic lambda calculus.
Feel free to bring along your own implementation and we'll compare notes!
As always, the code for the keypad outside is *1111.