"The IOSpec library contains a pure specification of several functions in the IO monad. You can use these specifications to test, debug, and reason about impure code."
The environment that we are designing, called Programatica, will allow programmers to assert properties of program elements as part of their source code, capturing intuitions and insights about its behavior at the time it is written.