Module and tests:
* Map conditions to related signals.
* Make contexts unhashable.
* Eliminate used "default" attribute in exception definitions.
* Eliminate the _filterfunc in favor of a straight list.

Docs:
* Eliminate documented references to conditions that are not signals.
* Eliminate parenthetical notes such as "1/0 --> Inf" which are no
  longer true with the new defaults.
diff --git a/Doc/lib/libdecimal.tex b/Doc/lib/libdecimal.tex
index 3b41d6a..b6164fc 100644
--- a/Doc/lib/libdecimal.tex
+++ b/Doc/lib/libdecimal.tex
@@ -66,10 +66,8 @@
 A decimal number is immutable.  It has a sign, coefficient digits, and an
 exponent.  To preserve significance, the coefficient digits do not truncate
 trailing zeroes.  Decimals also include special values such as
-\constant{Infinity} (the result of \samp{1 / 0}), \constant{-Infinity},
-(the result of \samp{-1 / 0}), and \constant{NaN} (the result of
-\samp{0 / 0}).  The standard also differentiates \constant{-0} from
-\constant{+0}.
+\constant{Infinity}, \constant{-Infinity}, and \constant{NaN}.  The standard
+also differentiates \constant{-0} from \constant{+0}.
                                                    
 The context for arithmetic is an environment specifying precision, rounding
 rules, limits on exponents, flags that indicate the results of operations,
@@ -82,9 +80,7 @@
 computation.  Depending on the needs of the application, some signals may be
 ignored, considered as informational, or treated as exceptions. The signals in
 the decimal module are: \constant{Clamped}, \constant{InvalidOperation},
-\constant{ConversionSyntax}, \constant{DivisionByZero},
-\constant{DivisionImpossible}, \constant{DivisionUndefined},
-\constant{Inexact}, \constant{InvalidContext}, \constant{Rounded},
+\constant{DivisionByZero}, \constant{Inexact}, \constant{Rounded},
 \constant{Subnormal}, \constant{Overflow}, and \constant{Underflow}.
 
 For each signal there is a flag and a trap enabler.  When a signal is
@@ -124,7 +120,7 @@
 Decimal instances can be constructed from integers, strings or tuples.  To
 create a Decimal from a \class{float}, first convert it to a string.  This
 serves as an explicit reminder of the details of the conversion (including
-representation error).  Malformed strings signal \constant{ConversionSyntax}
+representation error).  Malformed strings signal \constant{InvalidOperation}
 and return a special kind of Decimal called a \constant{NaN} which stands for
 ``Not a number''. Positive and negative \constant{Infinity} is yet another
 special kind of Decimal.        
@@ -274,10 +270,8 @@
 >>> getcontext().trap_enablers.update({Rounded:0, Inexact:0, Subnormal:0})
 >>> getcontext()
 Context(prec=9, rounding=ROUND_HALF_EVEN, Emin=-999999999, Emax=999999999,
-        setflags=[], settraps=['Underflow', 'DecimalException', 'Clamped',
-        'InvalidContext', 'InvalidOperation', 'ConversionSyntax',
-        'DivisionByZero', 'DivisionImpossible', 'DivisionUndefined',
-        'Overflow'])
+        setflags=[], settraps=['Clamped', 'Underflow', 'InvalidOperation',
+        'DivisionByZero', 'Overflow'])
 \end{verbatim}
 
 Applications typically set the context once at the beginning of a program
@@ -320,7 +314,7 @@
 
   The supplied \var{context} or, if not specified, the current context
   governs only the handling of malformed strings not conforming to the
-  numeric string syntax.  If the context traps \constant{ConversionSyntax},
+  numeric string syntax.  If the context traps \constant{InvalidOperation},
   an exception is raised; otherwise, the constructor returns a new Decimal
   with the value of \constant{NaN}.
 
@@ -730,13 +724,6 @@
     reduced to fit by adding zeroes to the coefficient.
 \end{classdesc*}
 
-\begin{classdesc*}{ConversionSyntax}
-    Trying to convert a malformed string such as:  \code{Decimal('jump')}.
-
-    Decimal converts only strings conforming to the numeric string
-    syntax.  If this signal is not trapped, returns \constant{NaN}.
-\end{classdesc*}
-
 \begin{classdesc*}{DecimalException}
     Base class for other signals.
 \end{classdesc*}
@@ -750,19 +737,6 @@
     the inputs to the calculation.
 \end{classdesc*}
 
-\begin{classdesc*}{DivisionImpossible}
-    Error performing a division operation.  Caused when an intermediate result
-    has more digits that the allowed by the current precision.  If not trapped,
-    returns \constant{NaN}.
-\end{classdesc*}
-
-
-\begin{classdesc*}{DivisionUndefined}
-    This is a subclass of \class{DivisionByZero}.
-
-    It occurs only in the context of division operations.
-\end{classdesc*}
-
 \begin{classdesc*}{Inexact}
     Indicates that rounding occurred and the result is not exact.
 
@@ -771,14 +745,6 @@
     to detect when results are inexact.
 \end{classdesc*}
 
-
-\begin{classdesc*}{InvalidContext}
-    This is a subclass of \class{InvalidOperation}.
-
-    Indicates an error within the Context object such as an unknown
-    rounding operation.  If not trapped, returns \constant{NaN}.
-\end{classdesc*}
-
 \begin{classdesc*}{InvalidOperation}
     An invalid operation was performed.
 
@@ -809,7 +775,6 @@
     \class{Rounded} are also signaled.   
 \end{classdesc*}
 
-
 \begin{classdesc*}{Rounded}
     Rounding occurred though possibly no information was lost.
 
@@ -844,16 +809,11 @@
                 Overflow(Inexact, Rounded)
                 Underflow(Inexact, Rounded, Subnormal)
             InvalidOperation
-                ConversionSyntax
-                DivisionImpossible
-                DivisionUndefined(InvalidOperation, exceptions.ZeroDivisionError)
-                InvalidContext
             Rounded
             Subnormal
 \end{verbatim}            
 
 
-
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \subsection{Working with threads \label{decimal-threads}}