fix typefail.yxm; remove more useless dependency on IO; switch old code using Control.Monad.Error to Control.Monad.Trans.Except