
On Tue, Oct 20, 2009 at 3:12 PM, Michael Snoyman
On Tue, Oct 20, 2009 at 11:04 AM, Nicolas Pouillard
wrote: On Sun, Oct 18, 2009 at 9:45 PM, Michael Snoyman
wrote: While working on the next release of data-object, I wanted to represent
[...]
About the name Attempt, I think that 'Outcome' would be a better name.
The problem with a name like "Outcome" is that it doesn't really imply the possibility of failure, simply that we are wrapping of the result for some reason.
I don't see why, the outcome of an action could be either a success or a failure. Even if the only *desired* outcome is success.
2) Are there any other FromAttempt instances I should provide out of the box?
None that I see.
3) I was considering adding specialized versions of the fromAttempt function, ie ioFromAttempt, maybeFromAttempt. Thoughts?
It is a bit long to spell.
True, but it can be more convenient than giving explicit type signatures. The main reason this might come up would be regarding the (Either String) and (Either SomeException) instances.
4) Should I follow the naming scheme attemptJoin, attemptLookup, etc, or just call the functions join, lookup and force people to import the module qualified?
A nice alternative would be to make a Data.Attempt.Extra (or a better name) which would be imported qualified.
I like. The only other name I can think of right now is Data.Attempt.Helper, but that's just painting the bike shed.
I also prefer Helper.
5) Any other suggestions for attempt functions? I've considered head/tail/etc.
Why not, maybe the 'safe' package should be of some inspiration.
Once they're all in their own module, I don't see a problem adding as many as possible.
[...]
attempt :: (forall e. Exception e -> b) -> (a -> b) -> Attempt a -> b
I was trying to more model it after fromMaybe, but instead just ended up with something ugly. I'm going to rewrite attempt using this type signature and then add fromAttempt as well.
Fine, fromAttempt should follow fromMaybe fromAttempt :: (forall e. Exception e -> a) -> Attempt a -> a fromAttempt f a = attempt f id a Regards, -- Nicolas Pouillard http://nicolaspouillard.fr