code: def canon(*rules, **kwargs):
      """Strategy for canonicalization.
  
      Explanation
      ===========
  
      Apply each rule in a bottom_up fashion through the tree.
      Do each one in turn.
      Keep doing this until there is no change.
      """
      return exhaust(top_down(exhaust(do_one(*rules)), **kwargs))
  
imports: from .None import rl
  from .core import do_one, exhaust, switch
  from .traverse import top_down
label_desc: Use image node_id 2 for calling a global function with example usage: canon() and returns: exhaust