Fixing up some GHC and hlint warnings and moving redo-ifchange functionality into the main program based on how it's invoked. This should have been 2 separate commits, but it's too late for that now!