
I once used `traverse optional` combined with `catMaybes`. For example:
Prelude Control.Applicative Data.Maybe> catMaybes <$> traverse optional
[[1,2],[3]]
[[1,3],[1],[2,3],[2],[3],[]]
This is totally out of order. I think a more natural output is:
[[],[3],[1],[1,3],[2],[2,3]]
2019년 9월 1일 (일) 오후 11:23, Edward Kmett
It would also render the combinator useless for its normal purpose.
optional is used mostly to try to run a parser and to either succeed with its result (wrapped in a Just) or _failing that_ to just return Nothing and carry on.
For monads like parsec, the first parse is the one that gets returned, so the definition isn't symmetric in behavior.
-Edward
On Sun, Sep 1, 2019 at 2:28 AM Dannyu NDos
wrote: The current 'one or none' definition breaks the order of elements.
It is more Ord-friendly to define it as 'none or one'. _______________________________________________ Libraries mailing list Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries