Document which part of the random module module are guaranteed.
diff --git a/Lib/random.py b/Lib/random.py
index 592e4b8..4ff65ab 100644
--- a/Lib/random.py
+++ b/Lib/random.py
@@ -91,13 +91,17 @@
         self.seed(x)
         self.gauss_next = None
 
-    def seed(self, a=None):
+    def seed(self, a=None, version=2):
         """Initialize internal state from hashable object.
 
         None or no argument seeds from current time or from an operating
         system specific randomness source if available.
 
-        If a is not None or an int, hash(a) is used instead.
+        For version 2 (the default), all of the bits are used if a is a str,
+        bytes, or bytearray.  For version 1, the hash() of a is used instead.
+
+        If a is an int, all bits are used.
+
         """
 
         if a is None:
@@ -107,6 +111,11 @@
                 import time
                 a = int(time.time() * 256) # use fractional seconds
 
+        if version == 2 and isinstance(a, (str, bytes, bytearray)):
+            if isinstance(a, str):
+                a = a.encode("utf8")
+            a = int(_hexlify(a), 16)
+
         super().seed(a)
         self.gauss_next = None