def mark_typed_list(self, name, type_object):
        if not hasattr(type_object, 'dump'):
            raise ArgumentError("The passed type object %s is missing required method: dump()" % type_object)
        if not hasattr(type_object, 'Restore'):
            raise ArgumentError("The passed type object %s is missing required method: Restore()" % type_object)
        def _dump_list(obj):
            if obj is None:
                return None
            if not isinstance(obj, list):
                raise DataError("Property %s marked as list was not a list: %s" % (name, repr(obj)))
            return [x.dump() for x in obj]
        def _restore_list(obj):
            if obj is None:
                return obj
            return [type_object.Restore(x) for x in obj]
        self.mark_complex(name, _dump_list, _restore_list)