(rule, fns=basic_fns)
return do_one(rule, lambda expr: sall(top_down(rule, fns), fns)(expr))
Apply a rule down a tree - stop on success
Apply a rule down a tree - stop on success
Apply a rule down a tree - stop on success
def top_down_once(rule, fns=basic_fns):
    """ Apply a rule down a tree - stop on success """
    return do_one(rule, lambda expr: sall(top_down(rule, fns), fns)(expr))
def top_down_once ( rule , fns = basic_fns ) : return do_one ( rule , lambda expr : sall ( top_down ( rule , fns ) , fns ) ( expr ) )