class_docstr: Functional composition (harmonic) combinator.
  Implements rules of the form
  X/Y Y/Z -> X/Z (B>)
  And the corresponding backwards and crossed variations.
class_docstr_tok: ["Functional","composition","(","harmonic",")","combinator",".","Implements","rules","of","the","form","X\/Y","Y\/Z","-",">","X\/Z","(","B",">",")","And","the","corresponding","backwards","and","crossed","variations","."]
code: def combine(self, function, argument):
      if not (function.is_function() and argument.is_function()):
          return
      if function.dir().can_compose() and argument.dir().can_compose():
          subs = function.arg().can_unify(argument.res())
          if subs is not None:
              yield FunctionalCategory(
                  function.res().substitute(subs),
                  argument.arg().substitute(subs),
                  argument.dir(),
              )
  
imports: from abc import ABCMeta, abstractmethod
  from nltk.ccg.api import FunctionalCategory
label_desc: Use image node_id 2 for calling the UndirectedComposition obj's underlying member method code with example usage: obj.combine(function, argument) without return types