Clean up isroutine().
diff --git a/Lib/inspect.py b/Lib/inspect.py
index c358a5c..2d88bc1 100644
--- a/Lib/inspect.py
+++ b/Lib/inspect.py
@@ -127,8 +127,7 @@
 
 def isroutine(object):
     """Return true if the object is any kind of function or method."""
-    return type(object) in [types.FunctionType, types.LambdaType,
-                            types.MethodType, types.BuiltinFunctionType]
+    return isbuiltin(object) or isfunction(object) or ismethod(object)
 
 def getmembers(object, predicate=None):
     """Return all members of an object as (name, value) pairs sorted by name.