On Tue, Jul 27, 2010 at 6:29 PM, Dietrich Epp <d...@zdome.net> wrote: > I'll say yes, a pattern match failure is a bug. This is one of the great > debates in the language: whether all pattern matching code should be > guaranteed complete at compile time or not. However, any function you call > which returns a result in your monad could theoretically call "fail" if it > was written that way. Data.Map.lookup used to call "fail" when it could not > find a key, but that got changed.
I've always thought that being able to write: > catMaybes :: [Maybe a] -> [a] > catMaybes xs = [ x | Just x <- xs ] is really cool, which relies on: > fail _ = [] being in the Monad instance for List. But I would give that up for getting "fail" out of Monad. We can alway re-implement "catMaybes." Antoine _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe