I've been doing a bunch of diving into type inference algorithms trying to understand them better so I can write a good one for the language I'm creating, and my latest project is visualizing how the algorithms work, to get a better intuition for them.
Here's a visualization of basic hindley-milner's algorithm-j. You can play with it here
https://type-inference-j.surge.sh/