http://www.duke.edu/~srg3/IFprogramming/inform.html