Understanding Higher Rank Polymorphism: A small guide using Typed Lambda Calculus