Improve docs:
* Simplify the pure python examples
* Add a quantify() example
diff --git a/Doc/lib/libitertools.tex b/Doc/lib/libitertools.tex
index d17fc6f..b708050 100644
--- a/Doc/lib/libitertools.tex
+++ b/Doc/lib/libitertools.tex
@@ -78,7 +78,7 @@
   Make an iterator that returns consecutive integers starting with \var{n}.
   Does not currently support python long integers.  Often used as an
   argument to \function{imap()} to generate consecutive data points.
-  Also, used in \function{izip()} to add sequence numbers.  Equivalent to:
+  Also, used with \function{izip()} to add sequence numbers.  Equivalent to:
 
   \begin{verbatim}
      def count(n=0):
@@ -103,9 +103,7 @@
          for element in iterable:
              yield element
              saved.append(element)
-         if len(saved) == 0:
-             return
-         while True:
+         while saved:
              for element in saved:
                    yield element
   \end{verbatim}
@@ -124,13 +122,12 @@
   \begin{verbatim}
      def dropwhile(predicate, iterable):
          iterable = iter(iterable)
-         while True:
-             x = iterable.next()
-             if predicate(x): continue # drop when predicate is true
+         for x in iterable:
+             if not predicate(x):
+                 yield x
+                 break
+         for x in iterable:
              yield x
-             break
-         while True:
-             yield iterable.next()
   \end{verbatim}
 \end{funcdesc}
 
@@ -209,9 +206,7 @@
   \begin{verbatim}
      def islice(iterable, *args):
          s = slice(*args)
-         next = s.start or 0
-         stop = s.stop
-         step = s.step or 1
+         next, stop, step = s.start or 0, s.stop, s.step or 1
          for cnt, element in enumerate(iterable):
              if cnt < next:
                  continue
@@ -278,9 +273,7 @@
 
   \begin{verbatim}
      def takewhile(predicate, iterable):
-         iterable = iter(iterable)
-         while True:
-             x = iterable.next()
+         for x in iterable:
              if predicate(x):
                  yield x
              else:
@@ -358,6 +351,10 @@
 ...     "Returns True if pred(x) is False for every element in the iterable"
 ...     return True not in imap(pred, seq)
 
+>>> def quantify(pred, seq):
+...     "Count how many times the predicate is True in the sequence"
+...     return sum(imap(pred, seq))
+
 >>> def padnone(seq):
 ...     "Returns the sequence elements and then returns None indefinitely"
 ...     return chain(seq, repeat(None))