On Sat, 14 Jun 2008, Neil Mitchell wrote:

Hi

 How about a {-# IMPOSSIBLE #-} pragma that documents the fact that a
particular point in the program *should* be unreachable?

Why not make it a function taking a string and returning a value of
any type. Then we can keep our language and not break various
parsing/type checking properties and rules on pragmas. We can even
define it:

impossible = error

Now you can use tools like Catch and Reach to ensure it is impossible.

I think it would be nice to distinguish between:

* error - inserted by the compiler

Example?

* impossible - the programmer knows this can't occur

This is an error. However the programmer adds a message because he might be wrong.

* abort - deliberate aborting because the user made some mistake.

This is an exception. The signature of a function must reflect this by a Maybe, Either type etc.


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

Reply via email to