pub fn new_canonical<I: Iterator<Item = char>>(iter: I) -> Decompositions<I>