Sort rules by lhs constructor name.
Workaround syntactic ambiguity when rule ends with all-fail and next starts without readables.
Factorize matches and builds inside list patterns.
Allocate all wildcards on factorization
Remove context-sensitive variable renaming.