code: def change_return_type(f):
      
      @wraps(f)
      def wrapper(*args, **kwargs):
          if kwargs.has_key('return_type'):
              return_type = kwargs['return_type']
              kwargs.pop('return_type')
              return return_type(f(*args, **kwargs))
          elif len(args) > 0:
              return_type = type(args[0])
              return return_type(f(*args, **kwargs))
          else:
              return f(*args, **kwargs)
      return wrapper
docs: Converts the returned value of wrapped function to the type of the
      first arg or to the type specified by a kwarg key return_type's value.