return is return True return undefined is return BOTTOM: Prelude.undefined return Control.Exception.throw is return BOTTOM: throw error return error is return BOTTOM: some error evaluate undefined is throw Prelude.undefined fail is throw user error (some failure) Control.Monad.Error.throwError userError is throw user error (some error) ioError userError is throw user error (some error) ioError undefined is throw unshowable: Prelude.undefined error is BOTTOM: some error Control.Exception.throw is BOTTOM: throw error undefined is BOTTOM: Prelude.undefined seq CAUGHT return seq CAUGHT return undefined seq CAUGHT return Control.Exception.throw seq CAUGHT return error seq CAUGHT evaluate undefined seq CAUGHT fail seq CAUGHT Control.Monad.Error.throwError userError seq CAUGHT ioError userError seq CAUGHT ioError undefined seq MISSED error seq MISSED Control.Exception.throw seq MISSED undefined >> CAUGHT return >> CAUGHT return undefined >> CAUGHT return Control.Exception.throw >> CAUGHT return error >> MISSED evaluate undefined >> MISSED fail >> MISSED Control.Monad.Error.throwError userError >> MISSED ioError userError >> MISSED ioError undefined >> MISSED error >> MISSED Control.Exception.throw >> MISSED undefined Prelude.catch MISSED return Prelude.catch MISSED return undefined Prelude.catch MISSED return Control.Exception.throw Prelude.catch MISSED return error Prelude.catch MISSED evaluate undefined Prelude.catch CAUGHT fail Prelude.catch CAUGHT Control.Monad.Error.throwError userError Prelude.catch CAUGHT ioError userError Prelude.catch CAUGHT ioError undefined Prelude.catch MISSED error Prelude.catch MISSED Control.Exception.throw Prelude.catch MISSED undefined System.IO.Error.catch MISSED return System.IO.Error.catch MISSED return undefined System.IO.Error.catch MISSED return Control.Exception.throw System.IO.Error.catch MISSED return error System.IO.Error.catch MISSED evaluate undefined System.IO.Error.catch CAUGHT fail System.IO.Error.catch CAUGHT Control.Monad.Error.throwError userError System.IO.Error.catch CAUGHT ioError userError System.IO.Error.catch CAUGHT ioError undefined System.IO.Error.catch MISSED error System.IO.Error.catch MISSED Control.Exception.throw System.IO.Error.catch MISSED undefined Control.Exception.catch MISSED return Control.Exception.catch MISSED return undefined Control.Exception.catch MISSED return Control.Exception.throw Control.Exception.catch MISSED return error Control.Exception.catch CAUGHT evaluate undefined Control.Exception.catch CAUGHT fail Control.Exception.catch CAUGHT Control.Monad.Error.throwError userError Control.Exception.catch CAUGHT ioError userError Control.Exception.catch CAUGHT ioError undefined Control.Exception.catch CAUGHT error Control.Exception.catch CAUGHT Control.Exception.throw Control.Exception.catch CAUGHT undefined Control.Monad.Error.catchError MISSED return Control.Monad.Error.catchError MISSED return undefined Control.Monad.Error.catchError MISSED return Control.Exception.throw Control.Monad.Error.catchError MISSED return error Control.Monad.Error.catchError MISSED evaluate undefined Control.Monad.Error.catchError CAUGHT fail Control.Monad.Error.catchError CAUGHT Control.Monad.Error.throwError userError Control.Monad.Error.catchError CAUGHT ioError userError Control.Monad.Error.catchError CAUGHT ioError undefined Control.Monad.Error.catchError MISSED error Control.Monad.Error.catchError MISSED Control.Exception.throw Control.Monad.Error.catchError MISSED undefined Control.Exception.finally CAUGHT return Control.Exception.finally CAUGHT return undefined Control.Exception.finally CAUGHT return Control.Exception.throw Control.Exception.finally CAUGHT return error Control.Exception.finally CAUGHT evaluate undefined Control.Exception.finally CAUGHT fail Control.Exception.finally CAUGHT Control.Monad.Error.throwError userError Control.Exception.finally CAUGHT ioError userError Control.Exception.finally CAUGHT ioError undefined Control.Exception.finally CAUGHT error Control.Exception.finally CAUGHT Control.Exception.throw Control.Exception.finally CAUGHT undefined Control.Exception.catch or >> CAUGHT return Control.Exception.catch or >> CAUGHT return undefined Control.Exception.catch or >> CAUGHT return Control.Exception.throw Control.Exception.catch or >> CAUGHT return error Control.Exception.catch or >> CAUGHT evaluate undefined Control.Exception.catch or >> CAUGHT fail Control.Exception.catch or >> CAUGHT Control.Monad.Error.throwError userError Control.Exception.catch or >> CAUGHT ioError userError Control.Exception.catch or >> CAUGHT ioError undefined Control.Exception.catch or >> CAUGHT error Control.Exception.catch or >> CAUGHT Control.Exception.throw Control.Exception.catch or >> CAUGHT undefined