code: def getargnames(argspecs, with_unbox=False):
      
      # todo: We can maybe make use of inspect.formatargspec
      args = argspecs.args
      vargs = argspecs.varargs
      try:
          kw = argspecs.keywords
      except AttributeError:
          kw = argspecs.varkw
      try:
          kwonly = argspecs.kwonlyargs
      except AttributeError:
          kwonly = None
      res = []
      if not args is None:
          res.extend(args)
      if not vargs is None:
          res.append('*'+vargs if with_unbox else vargs)
      if not kwonly is None:
          res.extend(kwonly)
      if not kw is None:
          res.append('**'+kw if with_unbox else kw)
      return res
docs: Resembles list of arg-names as would be seen in a function signature, including
      var-args, var-keywords and keyword-only args.