I think this sort of interactive development is a very good direction for type systems to take. A good type system not only precludes a wide range of annoying errors but also makes the language more expressive (e.g. typeclasses) and can even be an aide in developing the program in the first place.<p>For example, I imagine a tool like Hoogle* would be really awesome: you give it a type and it suggests how to compose functions to get that type. I know somebody implemented this for Java, but I think it would be more powerful and easier in a language like Haskell.<p>The important idea is to use type systems for more than just preventing errors, as these type holes show.