Small nitpick, but I would generally put the "exception" or "error" in the Left part of an Either and a correct result in the Right part.
This has some advantages.1 - Right is right as opposed to wrong. Easy to remember mnemonic.2 - It fits neatly with the Monad (Either e) instance.
Roelof, a nice exercise is to first implement your f2 function with the Integer -> Maybe Integer type and then with Integer -> Either String Integer.If you realize that both Monad Maybe and Monad (Either e) you can use almost the same code.
2015-10-31 12:04 GMT+01:00 Darren Grant <dedgrant@gmail.com>:
I'd expect most Haskellers to recommend something like,
f2 :: Integer -> Either Integer ErrorString
where ErrorString is some specific error value type. (String may suffice for you.)
This is a safe general solution, but there are many potentially more specific possibilities that might make your program simpler depending on how this function relates to the context it will be used in.
Cheers,
Darren
On Oct 31, 2015 21:46, "Roelof Wobben" <r.wobben@home.nl> wrote:
Op 31-10-2015 om 11:40 schreef Darren Grant:
Unfrotunately the answer to this is not simple:
http://stackoverflow.com/questions/4243117/how-to-catch-and-ignore-a-call-to-the-error-function
'error' more or less terminates the program in an unreasonable way.
It would be preferable for f2 to result in a type that can contain the error result to be parsed.
Cheers,
Darren