@InProceedings{impexceptions99,
   author = {Simon {Peyton Jones} and Alastair Reid and Tony Hoare and Simon Marlow and Fergus Henderson},
   title = {A Semantics for Imprecise Exceptions},
   booktitle = {Proceedings of the ACM SIGPLAN '99 Conference on Programming Language Design and Implementation},
   year = {1999},
   month = {May},
   address = {Atlanta, Georgia},
   abstract = {Some modern superscalar microprocessors provide only 
{\em imprecise exceptions}.
That is, they do not guarantee to report the same exception that would
be encountered by a straightforward sequential execution of the program.
In exchange, they offer increased performance or decreased chip area (which 
amount to much the same thing).

This performance/precision tradeoff has not so far been much explored
at the programming language level.  In this paper we propose a design
for imprecise exceptions in the lazy functional programming language
Haskell.  We discuss several designs, and conclude that
imprecision is essential if the language is still to enjoy its current
rich algebra of transformations.  We sketch a precise semantics for the
language extended with exceptions.

The paper shows how to extend Haskell with exceptions without
crippling the language or its compilers.  We do not yet have enough
experience of using the new mechanism to know whether it strikes an
appropriate balance between expressiveness and performance.
},
   pages = {25--36}
}
