Yeah, this style of type checking is a little clunky -- maybe this can all be done with Python decorators or some such.  That would be a nice improvement.