what's the deal with "user error" on fail?

Iavor S. Diatchki diatchki at cse.ogi.edu
Thu Nov 13 15:51:22 EST 2003

well that's because haskell is not as pure as it claims to be :-)

if every monad supports errors depends on what you mean by "supporting 
i would argue that supporting errors and divergence is not the same thing.
the difference is that one should be able to handle an error thrown by a 
while clearly we cannot detect nonterminating computations.


Jon Cast wrote:

>David Roundy <droundy at abridgegame.org> wrote:
>>i would say that if you are wanting to report errors to users, you
>>should not use "fail" or "error".  you should instead explicitly
>>report the error.  when i program i typically use "error" in
>>situations that i think are imposible, but if there is a bug one gets
>>a better error messeage.  i don't use fail (well except sometimes
>>implicitly in list comprahensions).  the reason i avoid "fail" is that
>>it seems hackish to me -- it implies that every monad supports errors
>     	   	      	       	       	    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
>In Haskell, this is indeed the case---every monad is after all a monad
>transformer applied to Haskell's identity monad, which supports errors
>(hence the existence of Haskell's `error' function :).  So even if a
>monad designer doesn't explicitly add error support, the monad still
>supports errors.
>Jon Cast
>Haskell-Cafe mailing list
>Haskell-Cafe at haskell.org

| Iavor S. Diatchki, Ph.D. student               | 
| Department of Computer Science and Engineering |
| School of OGI at OHSU                          |
| http://www.cse.ogi.edu/~diatchki               |

More information about the Haskell-Cafe mailing list