code: def infix(*kinds):
      
      def wrap(fn):
          try:
              fn.infix_kinds.extend(kinds)
          except AttributeError:
              fn.infix_kinds = list(kinds)
          return fn
      return wrap
docs: Decorate a method as handling infix tokens of the given kinds