Added some try-excepts so that it can be imported in restricted mode
(though some type names are undefined in that case, e.g. CodeType
(inaccessible), FileType (not always accessible), and TracebackType
and FrameType (inaccessible).
diff --git a/Lib/types.py b/Lib/types.py
index c0b3296..5254ebc 100644
--- a/Lib/types.py
+++ b/Lib/types.py
@@ -10,9 +10,9 @@
 LongType = type(0L)
 FloatType = type(0.0)
 try:
-	ComplexType = type(complex(0,1))
+    ComplexType = type(complex(0,1))
 except NameError:
-	pass
+    pass
 
 StringType = type('')
 
@@ -23,10 +23,13 @@
 def _f(): pass
 FunctionType = type(_f)
 LambdaType = type(lambda: None)		# Same as FunctionType
-CodeType = type(_f.func_code)
+try:
+    CodeType = type(_f.func_code)
+except:
+    pass
 
 class _C:
-	def _m(self): pass
+    def _m(self): pass
 ClassType = type(_C)
 UnboundMethodType = type(_C._m)		# Same as MethodType
 _x = _C()
@@ -38,14 +41,20 @@
 
 ModuleType = type(sys)
 
-FileType = type(sys.stdin)		# XXX what if it was assigned to?
+try:
+    FileType = type(sys.stdin)		# XXX what if it was assigned to?
+except:
+    pass
 XRangeType = type(xrange(0))
 
 try:
-	raise TypeError
+    raise TypeError
 except TypeError:
+    try:
 	TracebackType = type(sys.exc_traceback)
 	FrameType = type(sys.exc_traceback.tb_frame)
+    except:
+	pass
 
 SliceType = type(slice(0))
 EllipsisType = type(Ellipsis)