(rule, fns=basic_fns)
return do_one(lambda expr: sall(bottom_up(rule, fns), fns)(expr), rule)
Apply a rule up a tree - stop on success
Apply a rule up a tree - stop on success
Apply a rule up a tree - stop on success
def bottom_up_once(rule, fns=basic_fns):
    """ Apply a rule up a tree - stop on success """
    return do_one(lambda expr: sall(bottom_up(rule, fns), fns)(expr), rule)
def bottom_up_once ( rule , fns = basic_fns ) : return do_one ( lambda expr : sall ( bottom_up ( rule , fns ) , fns ) ( expr ) , rule )