MGU unification algorithm, typing of abstraction, application and let.