The order of the fragment type hierarchy and relationship between parent and child types could help explain some missing types. The two missing angle types, a6 ("[*:1]∼;!@[*;r3:2]∼;!@[*:3]") and a12 ("[*:1]∼;!@[*;r5:2]∼;@[*;r5:3]"), highlight the importance of where newly generated SMIRKS are placed in the hierarchy. In smirnoff99Frosst these patterns always match carbon atoms in 3-and 5-membered rings, but atoms 1 and 3 can be any element, meaning it is easy to lose progress made toward these two patterns when patterns lower in the hierarchy also match the ring carbon. SMIRKY requires that when a child SMIRKS pattern is created the parent SMIRKS still matches at least some molecules. In most cases this prevents the creation of unnecessarily specific SMIRKS, but in some cases makes it impossible to OR decorators together. For example, we would be unable to find the exact pattern for n7 ("[#1:1]-[#6X4]∼[*+1,*+2]") because creation of a child with a second OR type on the beta atom will always empty the parent. This is also true for many of the other 19 missing torsions. SMIRKY is not trying to discover the exact SMIRKS patterns used in smirnoff99Frosst so it is possible our algorithm could still succeed finding SMIRKS matching these reference types using a different combination of moves. However, allowing moves to combine SMIRKS decorators could make distinguishing this type of chemistry easier. Another possible solution is allowing a child to completely replace a parent when the generated SMIRKS matches a larger section of chemical space, but not when it types the same group of fragments the parent typed.