Spaces:
Sleeping
Sleeping
from .core import exhaust, multiplex | |
from .traverse import top_down | |
def canon(*rules): | |
""" Strategy for canonicalization | |
Apply each branching rule in a top-down fashion through the tree. | |
Multiplex through all branching rule traversals | |
Keep doing this until there is no change. | |
""" | |
return exhaust(multiplex(*map(top_down, rules))) | |