On Sat, Aug 29, 2009 at 12:07:51PM -0700, Taral wrote:
On Fri, Aug 28, 2009 at 5:22 PM, John Meacham
wrote: That said, I am still undecided about imprecise exceptions. (catching pattern match failures and error calls). They inhibit the optimizer and signal bugs, not catchable exceptions. I may introduce a flag to control this behavior though.. imprecise exceptions are occasionally useful for things like writing an interpreter...
Perhaps a flag to ignore impossible-to-reach _ cases at the end of a match block? Then one can simply add:
_ -> throw xyz
to the end of blocks where one wants these exceptions.
You can do this anyway, or could if jhc's throw support worked :), for every case expression: case ... of Foo -> y Bar -> z jhc adds an alternate at the end _ -> error "Unmatched case at file:line-number" then the simplifier will delete any unreachable alternatives. So no need for a switch, impossible to reach alternatives of any form are always deleted. John -- John Meacham - ⑆repetae.net⑆john⑈ - http://notanumber.net/