One of the joys of working in F# is how the stronger type system combined with the type hover-overs allows for a sort of debugging-as-you-type that allows you to think with the help of the type system. It really helps unwind difficult problems and when there are errors you can easily see inline how to fix them. This is an impressive use of that facility, though it's even more useful when trying to solve a problem.