On 12/14/11 9:52 PM, Brandon Allbery wrote:
That's kinda where I am right now; I'm being told simultaneously that (a)
it makes sense to have Applicative and Alternative for Maybe, and (b) it
doesn't make sense to have many and some for Maybe, and (c) if you have
Applicative and Alternative then many and some automatically follow.
These statements are not mutually logically consistent, and leave me
wondering if Applicative and/or Alternative have been fully thought out.

I think we can all safely agree that the Applicative instance for Maybe is both sound and sensible. Afterall, it captures exactly the same idea as the monad instance: (explicitly) partial functions.

The only difference is that the Applicative instance removes (in theory) the ordering constraints imposed by Monad, and therefore allows a more functional/applicative style of programming in lieu of the imperative style a la do-notation. The loss of ordering restrictions is only in theory because in order to propagate failures correctly we must use call-by-value semantics--- or, rather, we must be explicit about when we're not evaluating something (and so may safely discard its potential for returning Nothing). So, we can get rid of all the ordering differences between different call-by-value systems, but we're not completely confluent.

--
Live well,
~wren

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to