Hindley Milner Type Checking Algorithm Visualizer Research