On Tue, 9 Jun 2015, Evan Laforge wrote: > Definitely +1 here, but if you have an irrefutable pattern: > > ~(Just x) <- action > ... expresison involving x ... > > My understanding is that 'fail' is only called if you evaluate 'x'. I think you would no longer have an (overloadable) "fail", but a (hardwired) "error".