val zero = Sym.fromString "0"; val one = Sym.fromString "1"; fun diff (nil : str) = 0 | diff (b :: bs) = if Sym.equal(b, zero) then ~1 + diff bs else 1 + diff bs; fun equal n = Set.filter (fn x => diff x = 0) (StrSet.power(StrSet.fromString "0, 1", n)); fun upto 0 = equal 0 | upto n = StrSet.union(equal n, upto(n - 1)); fun locSimp n = Reg.locallySimplify(SOME n, Reg.obviousSubset); fun assess reg = (Reg.size reg, Reg.numConcats reg, Reg.numSyms reg, Reg.standardized reg);