Repository: crate-ci/typos
Pull request #374 (2021-11-12 21:56:16)

Fix multiple escape sequences
If escape sequences follow straight after each other, there is no
delimiter in-between.
In such a case, parsing previously stopped and did not find any
typos further in the file.

Also change the c-escape parser to take either \\+\<single char> or
\\+\<char sequence delimited by space or similar>.

Also update trycmd, so failures actually show up in CI.


Patch:
diff --git a/Cargo.lock b/Cargo.lock
index c73ec14..2f34069 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1499,9 +1499,9 @@ checksum = "a7f741b240f1a48843f9b8e0444fb55fb2a4ff67293b50a9179dfd5ea67f8d41"
 
 [[package]]
 name = "trycmd"
-version = "0.4.0"
+version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b15571a9c85f2dc93e93907813b8b82583a60c1ee738ef5fa5123f4c96863b5"
+checksum = "2d034538089e906ac14df42c19aae52a55aa1014102d6895d9748080e043cc48"
 dependencies = [
  "concolor-control",
  "difflib",
diff --git a/Cargo.toml b/Cargo.toml
index 81dfd5c..83bbb14 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -94,7 +94,7 @@ maplit = "1.0"
 
 [dev-dependencies]
 assert_fs = "1.0"
-trycmd = "0.4"
+trycmd = "0.5.1"
 criterion = "0.3"
 
 [profile.dev]
diff --git a/crates/typos-dict/assets/words.csv b/crates/typos-dict/assets/words.csv
index 7cd8c86..c239643 100644
--- a/crates/typos-dict/assets/words.csv
+++ b/crates/typos-dict/assets/words.csv
@@ -655,7 +655,6 @@ accumulatin,accumulation
 accumulato,accumulation
 accumulaton,accumulation
 accumule,accumulate
-accumulotor,accumulator
 accumulted,accumulated
 accupied,occupied
 accupts,accepts
@@ -1708,7 +1707,6 @@ aleviates,alleviates
 aleviating,alleviating
 alevt,alert
 algebraical,algebraic
-algebriac,algebraic
 algebric,algebraic
 algebrra,algebra
 algee,algae
@@ -1955,7 +1953,6 @@ alignemnts,alignments
 alignemt,alignment
 alignes,aligns
 alignmant,alignment
-alignmeent,alignment
 alignmen,alignment
 alignmenet,alignment
 alignmenets,alignments
@@ -3896,7 +3893,6 @@ aspiratons,aspirations
 aspriations,aspirations
 aspriin,aspirin
 assagne,assange
-assamble,assemble
 assasin,assassin
 assasinate,assassinate
 assasinated,assassinated
@@ -5236,7 +5232,7 @@ baloons,balloons
 balse,false
 balsphemy,blasphemy
 banannas,bananas
-banch,bank,branch,bench
+banch,branch,bench
 banched,branched,benched
 banches,branches,benches
 banditas,bandits
@@ -5742,7 +5738,6 @@ bianries,binaries
 bianry,binary
 biappicative,biapplicative
 bibilcal,biblical
-bicast,bitcast
 bicthes,bitches
 bicylces,bicycles
 bidimentionnal,bidimensional
@@ -5838,7 +5833,6 @@ bitap,bitmap
 bitcion,bitcoin
 bitcions,bitcoins
 bitcoints,bitcoins
-bitfied,bitfield
 bitfileld,bitfield
 bitfilelds,bitfields
 bithced,bitched
@@ -6120,7 +6114,6 @@ bottlenect,bottleneck
 bottlenects,bottlenecks
 bottlneck,bottleneck
 bottlnecks,bottlenecks
-bottm,bottom
 bottomborde,bottomborder
 bottome,bottom
 botton,bottom,button
@@ -6808,7 +6801,6 @@ calcualtions,calculations
 calcualtor,calculator
 calcualtors,calculators
 calcuate,calculate
-calcuated,calculated
 calcuations,calculations
 calcuim,calcium
 calculador,calculator
@@ -8415,7 +8407,6 @@ clairfy,clarify
 clairfying,clarifying
 clairty,clarity
 clame,claim
-clampled,clamped
 clanand,clannad
 clannand,clannad
 claread,cleared
@@ -9011,7 +9002,6 @@ comaprisons,comparisons
 comaptible,compatible
 comarators,comparators
 comarde,comrade
-comatible,compatible
 comback,comeback
 combained,combined
 combanations,combinations
@@ -11047,8 +11037,6 @@ constains,constrains,contains
 constaints,constraints
 constallation,constellation
 constallations,constellations
-constand,constant
-constandly,constantly
 constanly,constantly
 constans,constants
 constanst,constants
@@ -11062,7 +11050,6 @@ constasnt,constants
 constast,constants
 constatn,constant
 constatnly,constantly
-constatns,constants
 constatnt,constant
 constatnts,constants
 constcurts,constructs
@@ -11564,7 +11551,6 @@ contradicton,contradiction
 contradictons,contradicts
 contradtion,contraction
 contrained,contained,constrained
-contrainers,containers
 contraining,constraining
 contraint,constraint
 contraints,constraints
@@ -11887,7 +11873,6 @@ coomand,command
 coommand,command
 coonstantly,constantly
 coonstructed,constructed
-cooparetive,cooperative
 coopearte,cooperate
 coopeartes,cooperates
 cooperacion,cooperation
@@ -11897,7 +11882,6 @@ cooporation,cooperation
 cooporative,cooperative
 coordanate,coordinate
 coordanates,coordinates
-coordate,cordinate
 coordenate,coordinate
 coordenated,coordinated
 coordenates,coordinates
@@ -12051,6 +12035,7 @@ coralina,carolina
 corasir,corsair
 coratia,croatia
 corcodile,crocodile
+cordinate,coordinate
 cordinates,coordinates
 cordoroy,corduroy
 cordump,coredump
@@ -12791,7 +12776,6 @@ crytopgraphic,cryptographic
 crytpic,cryptic
 crytpo,crypto
 crytsal,crystal
-csses,cases
 cthluhu,cthulhu
 cthuhlu,cthulhu
 cthulhlu,cthulhu
@@ -14612,7 +14596,6 @@ descriping,describing
 descripition,description
 descripiton,descriptions
 descripor,descriptor
-descripotrs,descriptors
 descripters,descriptors
 descriptio,description
 descriptiom,description
@@ -16912,8 +16895,6 @@ downvottes,downvoters
 downvotting,downvoting
 downwoters,downvoters
 downwoting,downvoting
-dowrd,dword
-dowrds,dwords
 dows,does
 dowt,doubt
 doxgen,doxygen
@@ -17561,7 +17542,6 @@ elevatin,elevation
 elgible,eligible
 elicided,elicited
 eligable,eligible
-eligble,eligible
 elimanates,eliminates
 elimanation,elimination
 elimenates,eliminates
@@ -17796,7 +17776,6 @@ emualtion,emulation
 emulatin,emulation
 emultor,emulator
 emultors,emulators
-enaable,enable
 enabe,enable
 enabel,enable
 enabeled,enabled
@@ -18292,8 +18271,6 @@ enumearate,enumerate
 enumearation,enumeration
 enumerble,enumerable
 enumertaion,enumeration
-enumrate,enumerate
-enumrates,enumerates
 enusre,ensure
 envaluation,evaluation
 enveloppe,envelope
@@ -22133,7 +22110,6 @@ funtionally,functionally
 funtionalty,functionality
 funtioning,functioning
 funtions,functions
-funture,future
 furance,furnace
 furctose,fructose
 furether,further
@@ -22698,7 +22674,6 @@ gorillla,gorilla
 gormay,gourmet
 gorry,gory
 gorumet,gourmet
-gorup,group
 gorvement,government
 gosepls,gospels
 gospells,gospels
@@ -24721,7 +24696,6 @@ implemet,implements,implement
 implemetation,implementation
 implemetations,implementations
 implemeted,implemented
-implemetend,implemented
 implemeting,implementing
 implemetnation,implementations,implementation
 implemets,implements
@@ -25682,7 +25656,6 @@ inevitibly,inevitably
 inevititably,inevitably
 inevtiable,inevitable
 inevtiably,inevitably
-inex,index
 inexblicably,inexplicably
 inexeprienced,inexperience
 inexistant,inexistent
@@ -26108,8 +26081,6 @@ initialzation,initialization
 initialze,initialize
 initialzed,initialized
 initialzes,initializes
-initialzie,initialize
-initialzier,initializer
 initialzing,initializing
 initiatie,initiatives
 initiaties,initiatives
@@ -26360,7 +26331,6 @@ insepects,inspects
 insependent,independent
 inseperable,inseparable
 insepsion,inception
-inser,insert
 insering,inserting
 insersect,intersect
 insersected,intersected
@@ -26583,9 +26553,7 @@ instrcutions,instruction,instructions
 instrcutor,instructors
 instrcuts,instructs
 instread,instead
-instrinics,intrinsics
 instrinsic,intrinsic
-instrinsics,intrinsics
 instruccion,instruction
 instruccions,instructions
 instrucion,instruction
@@ -27040,7 +27008,6 @@ interpolaed,interpolated
 interpolaion,interpolation
 interpolaiton,interpolation
 interpolar,interpolator
-interpolaton,interpolation
 interpolayed,interpolated
 interporated,interpolated,interpreted
 interpratation,interpretation
@@ -28474,7 +28441,6 @@ lavendr,lavender
 lawernce,lawrence
 laybrinth,labyrinth
 layed,laid
-layour,layout
 lazer,laser
 lazyness,laziness
 lcoal,local,coal
@@ -29078,9 +29044,6 @@ localtion,location
 localtions,locations
 localzation,localization
 locatins,locations
-locatio,locations
-locatoin,location
-locatoins,locations
 loccked,locked
 locgical,logical
 lockacreen,lockscreen
@@ -29598,7 +29561,6 @@ maraudeurs,marauder
 marbels,marbles
 marbleds,marbles
 marchmallows,marshmallows
-marcros,macros
 marevlous,marvelous
 marganilize,marginalized
 marganilized,marginalized
@@ -30257,7 +30219,6 @@ metabolizm,metabolism
 metabolsim,metabolism
 metacharater,metacharacter
 metacharaters,metacharacters
-metadta,metadata
 metagaem,metagame
 metagem,metagame
 metahpor,metaphor
@@ -30725,7 +30686,6 @@ mirrorn,mirror
 mirrorred,mirrored
 misalignement,misalignment
 misalinged,misaligned
-misalligned,misaligned
 misanderstood,misunderstood
 misandrony,misandry
 misandy,misandry
@@ -33123,7 +33083,6 @@ ocurrences,occurrences
 oder,order,odor
 odly,oddly
 oen,one
-oepration,operation
 oerflow,overflow
 ofcoruse,ofcourse
 ofcoure,ofcourse
@@ -33386,8 +33345,6 @@ operatons,operations
 operattion,operation
 operattions,operations
 opereation,operation
-operration,operation
-operrations,operations
 opertaion,operation
 opertaions,operations
 opertion,operation
@@ -33757,7 +33714,6 @@ origonally,originally
 origonated,originated
 oringal,original
 oringally,originally
-oringinal,original
 orlenas,orleans
 orpahns,orphans
 orpan,orphan
@@ -35812,7 +35768,6 @@ pionts,points
 piority,priority
 pipeine,pipeline
 pipeines,pipelines
-pipelien,pipeline
 pipelin,pipeline
 pipelinining,pipelining
 pipelins,pipelines
@@ -35824,7 +35779,6 @@ pipleine,pipeline
 pipleines,pipelines
 pipleline,pipeline
 piplelines,pipelines
-pipline,pipeline
 pireced,pierced
 pitchferks,pitchforks
 pitchfolks,pitchforks
@@ -37164,7 +37118,6 @@ preverse,perverse
 preverses,preserves
 prevert,pervert
 preverve,preserve
-preverved,preserved
 prevew,preview
 prevews,previews
 previal,prevail
@@ -38531,7 +38484,6 @@ publusher,publisher
 publushers,publishers
 publushes,publishes
 publushing,publishing
-puch,push
 puchasing,purchasing
 pucini,puccini
 puhsups,pushups
@@ -38890,7 +38842,6 @@ rasons,reasons
 raspberrry,raspberry
 raspbery,raspberry
 raspoberry,raspberry
-rasterizor,rasterizer
 rathar,rather
 rathcet,ratchet
 rathern,rather
@@ -39084,7 +39035,6 @@ reasonble,reasonable
 reasonbly,reasonably
 reasonnable,reasonable
 reasonnably,reasonably
-reassocation,reassociation
 reassocition,reassociation
 reasssign,reassign
 reassureing,reassuring
@@ -39573,7 +39523,6 @@ redudant,redundant
 redunancy,redundancy
 redunant,redundant
 reduncancy,redundancy
-reduncant,redundant
 redundacy,redundancy
 redundantcy,redundancy
 redundany,redundancy
@@ -40601,7 +40550,6 @@ reosurced,resourced
 reosurces,resources
 reosurcing,resourcing
 reounded,rounded
-reource,resource
 reouted,routed,rerouted
 reowrked,reworked
 repace,replace
@@ -41367,8 +41315,8 @@ resroucing,resourcing
 resrved,reserved
 ressapee,recipe
 ressemblance,resemblance
-ressemble,reassemble,resemble
-ressembled,reassembled,resembled
+ressemble,resemble
+ressembled,resembled
 ressemblence,resemblance
 ressembling,resembling
 ressemle,resemble
@@ -42052,7 +42000,6 @@ runnint,running
 runnning,running
 runns,runs
 runnung,running
-runtimr,runtime
 runtine,runtime,routine
 runting,runtime
 rurrent,current
@@ -42280,7 +42227,6 @@ satisy,satisfy
 satric,satiric
 satrical,satirical
 satrically,satirically
-satruation,saturation
 satruday,saturday
 satrudays,saturdays
 satsifaction,satisfaction
@@ -42318,7 +42264,6 @@ saxaphone,saxophone
 sbsampling,subsampling
 scaepgoat,scapegoat
 scahr,schar
-scalarizaiton,scalarization
 scalarr,scalar
 scaleability,scalability
 scaleable,scalable
@@ -42409,7 +42354,6 @@ scenegraaphs,scenegraphs
 sceond,second
 sceonds,seconds
 scepture,sceptre
-scestion,section
 scetch,sketch
 scetched,sketched
 scetches,sketches
@@ -43152,7 +43096,6 @@ serailization,serialization
 serailized,serialized
 serailze,serialize
 serailzed,serialized
-serailzied,serialized
 serbain,serbian
 sercive,service
 sercived,serviced
@@ -43290,7 +43233,6 @@ sezuires,seizures
 sfety,safety
 sgadow,shadow
 shadasloo,shadaloo
-shadder,shader
 shaddow,shadow
 shadhow,shadow
 shadoloo,shadaloo
@@ -44463,7 +44405,6 @@ spcific,specific
 spcifies,specifies
 speach,speech
 speacial,special,spacial
-spearated,separated
 spearator,separator
 spearators,separators
 specail,special
@@ -46182,8 +46123,6 @@ succeding,succeeding
 succeds,succeeds
 succeedes,succeeds
 succeeed,succeed,succeeded
-succeeedds,succeeds
-succeeeds,succeeds
 succees,succeeds,success
 succes,success
 succesd,succeeds
@@ -46543,7 +46482,6 @@ suppossed,supposed
 suppost,supports
 suppoted,supported
 suppplied,supplied
-supppored,supported
 suppport,support
 suppported,supported
 suppporting,supporting
@@ -47302,7 +47240,6 @@ targetting,targeting
 targettting,targeting
 targt,target
 targte,target
-targtets,targets
 tarmigan,ptarmigan
 tarnsparent,transparent
 tarpolin,tarpaulin
@@ -48057,7 +47994,6 @@ threds,threads
 threee,three
 threefor,therefor
 threeof,thereof
-threeshold,threshold
 threhold,threshold
 threre,there,three
 threrefore,therefore
@@ -48228,7 +48164,6 @@ titels,titles
 titile,title
 tittled,titled
 tittling,titling
-tiwards,towards
 tje,the
 tjhe,the
 tjpanishad,upanishad
@@ -48544,7 +48479,6 @@ trannsexual,transsexual
 tranparent,transparent
 tranparently,transparently
 tranport,transport
-tranpose,transpose
 tranpshobic,transphobic
 transaccion,transaction
 transacion,transaction
@@ -51060,7 +50994,6 @@ variabe,variable
 variabel,variable
 variabele,variable
 variabes,variables
-variabl,variable
 varialbles,variables
 varian,variant
 varians,variants
@@ -51399,7 +51332,6 @@ vietnamnese,vietnamese
 vieweres,viewers
 viewpiont,viewpoint
 viewpionts,viewpoints
-viewpoert,viewport
 viewpoit,viewpoints
 viewtransfromation,viewtransformation
 vigeur,vigueur,vigour,vigour
@@ -52250,7 +52182,6 @@ wnats,wants
 wnen,when,wen
 wnidow,window,widow
 wnidows,windows,widows
-woarkaround,workaround
 woh,who
 wohle,whole
 woill,will
diff --git a/crates/typos-dict/src/dict_codegen.rs b/crates/typos-dict/src/dict_codegen.rs
index 103b547..1eda587 100644
--- a/crates/typos-dict/src/dict_codegen.rs
+++ b/crates/typos-dict/src/dict_codegen.rs
@@ -563,7 +563,7 @@ static WORD_WO_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen::D
 };
 
 static WORD_WO_CHILDREN: [Option<&dictgen::DictTrieNode<&'static [&'static str]>>; 26] = [
-    Some(&WORD_WOA_NODE),
+    None,
     None,
     None,
     None,
@@ -1053,17 +1053,6 @@ pub static WORD_WOH_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dict
     range: 2..=2,
 };
 
-static WORD_WOA_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen::DictTrieNode {
-    children: dictgen::DictTrieChild::Flat(&WORD_WOA_CHILDREN),
-    value: None,
-};
-
-pub static WORD_WOA_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dictgen::DictTable {
-    keys: &[dictgen::InsensitiveStr::Ascii("rkaround")],
-    values: &[&["workaround"]],
-    range: 8..=8,
-};
-
 static WORD_WN_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen::DictTrieNode {
     children: dictgen::DictTrieChild::Flat(&WORD_WN_CHILDREN),
     value: None,
@@ -4021,7 +4010,6 @@ pub static WORD_VIE_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dict
         dictgen::InsensitiveStr::Ascii("weres"),
         dictgen::InsensitiveStr::Ascii("wpiont"),
         dictgen::InsensitiveStr::Ascii("wpionts"),
-        dictgen::InsensitiveStr::Ascii("wpoert"),
         dictgen::InsensitiveStr::Ascii("wpoit"),
         dictgen::InsensitiveStr::Ascii("wtransfromation"),
     ],
@@ -4040,7 +4028,6 @@ pub static WORD_VIE_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dict
         &["viewers"],
         &["viewpoint"],
         &["viewpoints"],
-        &["viewport"],
         &["viewpoints"],
         &["viewtransformation"],
     ],
@@ -5132,7 +5119,6 @@ pub static WORD_VAR_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dict
         dictgen::InsensitiveStr::Ascii("iabel"),
         dictgen::InsensitiveStr::Ascii("iabele"),
         dictgen::InsensitiveStr::Ascii("iabes"),
-        dictgen::InsensitiveStr::Ascii("iabl"),
         dictgen::InsensitiveStr::Ascii("ialbles"),
         dictgen::InsensitiveStr::Ascii("ian"),
         dictgen::InsensitiveStr::Ascii("ians"),
@@ -5196,7 +5182,6 @@ pub static WORD_VAR_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dict
         &["variable"],
         &["variable"],
         &["variables"],
-        &["variable"],
         &["variables"],
         &["variant"],
         &["variants"],
@@ -13486,14 +13471,12 @@ pub static WORD_TRANP_CHILDREN: dictgen::DictTable<&'static [&'static str]> = di
         dictgen::InsensitiveStr::Ascii("arent"),
         dictgen::InsensitiveStr::Ascii("arently"),
         dictgen::InsensitiveStr::Ascii("ort"),
-        dictgen::InsensitiveStr::Ascii("ose"),
         dictgen::InsensitiveStr::Ascii("shobic"),
     ],
     values: &[
         &["transparent"],
         &["transparently"],
         &["transport"],
-        &["transpose"],
         &["transphobic"],
     ],
     range: 3..=7,
@@ -14614,23 +14597,12 @@ static WORD_TI_CHILDREN: [Option<&dictgen::DictTrieNode<&'static [&'static str]>
     Some(&WORD_TIT_NODE),
     None,
     None,
-    Some(&WORD_TIW_NODE),
+    None,
     None,
     None,
     None,
 ];
 
-static WORD_TIW_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen::DictTrieNode {
-    children: dictgen::DictTrieChild::Flat(&WORD_TIW_CHILDREN),
-    value: None,
-};
-
-pub static WORD_TIW_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dictgen::DictTable {
-    keys: &[dictgen::InsensitiveStr::Ascii("ards")],
-    values: &[&["towards"]],
-    range: 4..=4,
-};
-
 static WORD_TIT_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen::DictTrieNode {
     children: dictgen::DictTrieChild::Flat(&WORD_TIT_CHILDREN),
     value: None,
@@ -15272,7 +15244,6 @@ pub static WORD_THRE_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dic
         dictgen::InsensitiveStr::Ascii("ee"),
         dictgen::InsensitiveStr::Ascii("efor"),
         dictgen::InsensitiveStr::Ascii("eof"),
-        dictgen::InsensitiveStr::Ascii("eshold"),
         dictgen::InsensitiveStr::Ascii("hold"),
         dictgen::InsensitiveStr::Ascii("re"),
         dictgen::InsensitiveStr::Ascii("refore"),
@@ -15307,7 +15278,6 @@ pub static WORD_THRE_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dic
         &["therefor"],
         &["thereof"],
         &["threshold"],
-        &["threshold"],
         &["there", "three"],
         &["therefore"],
         &["threshold"],
@@ -17733,7 +17703,6 @@ pub static WORD_TAR_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dict
         dictgen::InsensitiveStr::Ascii("gettting"),
         dictgen::InsensitiveStr::Ascii("gt"),
         dictgen::InsensitiveStr::Ascii("gte"),
-        dictgen::InsensitiveStr::Ascii("gtets"),
         dictgen::InsensitiveStr::Ascii("migan"),
         dictgen::InsensitiveStr::Ascii("nsparent"),
         dictgen::InsensitiveStr::Ascii("polin"),
@@ -17752,7 +17721,6 @@ pub static WORD_TAR_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dict
         &["targeting"],
         &["target"],
         &["target"],
-        &["targets"],
         &["ptarmigan"],
         &["transparent"],
         &["tarpaulin"],
@@ -20431,7 +20399,6 @@ static WORD_SUPPP_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen
 pub static WORD_SUPPP_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dictgen::DictTable {
     keys: &[
         dictgen::InsensitiveStr::Ascii("lied"),
-        dictgen::InsensitiveStr::Ascii("ored"),
         dictgen::InsensitiveStr::Ascii("ort"),
         dictgen::InsensitiveStr::Ascii("orted"),
         dictgen::InsensitiveStr::Ascii("orting"),
@@ -20439,7 +20406,6 @@ pub static WORD_SUPPP_CHILDREN: dictgen::DictTable<&'static [&'static str]> = di
     ],
     values: &[
         &["supplied"],
-        &["supported"],
         &["support"],
         &["supported"],
         &["supporting"],
@@ -21591,8 +21557,6 @@ pub static WORD_SUCC_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dic
         dictgen::InsensitiveStr::Ascii("eds"),
         dictgen::InsensitiveStr::Ascii("eedes"),
         dictgen::InsensitiveStr::Ascii("eeed"),
-        dictgen::InsensitiveStr::Ascii("eeedds"),
-        dictgen::InsensitiveStr::Ascii("eeeds"),
         dictgen::InsensitiveStr::Ascii("ees"),
         dictgen::InsensitiveStr::Ascii("es"),
         dictgen::InsensitiveStr::Ascii("esd"),
@@ -21654,8 +21618,6 @@ pub static WORD_SUCC_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dic
         &["succeeds"],
         &["succeeds"],
         &["succeed", "succeeded"],
-        &["succeeds"],
-        &["succeeds"],
         &["succeeds", "success"],
         &["success"],
         &["succeeds"],
@@ -27345,14 +27307,12 @@ pub static WORD_SPEA_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dic
     keys: &[
         dictgen::InsensitiveStr::Ascii("ch"),
         dictgen::InsensitiveStr::Ascii("cial"),
-        dictgen::InsensitiveStr::Ascii("rated"),
         dictgen::InsensitiveStr::Ascii("rator"),
         dictgen::InsensitiveStr::Ascii("rators"),
     ],
     values: &[
         &["speech"],
         &["special", "spacial"],
-        &["separated"],
         &["separator"],
         &["separators"],
     ],
@@ -30804,7 +30764,6 @@ static WORD_SHA_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen::
 pub static WORD_SHA_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dictgen::DictTable {
     keys: &[
         dictgen::InsensitiveStr::Ascii("dasloo"),
-        dictgen::InsensitiveStr::Ascii("dder"),
         dictgen::InsensitiveStr::Ascii("ddow"),
         dictgen::InsensitiveStr::Ascii("dhow"),
         dictgen::InsensitiveStr::Ascii("doloo"),
@@ -30860,7 +30819,6 @@ pub static WORD_SHA_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dict
     ],
     values: &[
         &["shadaloo"],
-        &["shader"],
         &["shadow"],
         &["shadow"],
         &["shadaloo"],
@@ -31463,7 +31421,6 @@ pub static WORD_SERA_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dic
         dictgen::InsensitiveStr::Ascii("ilized"),
         dictgen::InsensitiveStr::Ascii("ilze"),
         dictgen::InsensitiveStr::Ascii("ilzed"),
-        dictgen::InsensitiveStr::Ascii("ilzied"),
     ],
     values: &[
         &["search"],
@@ -31475,7 +31432,6 @@ pub static WORD_SERA_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dic
         &["serialized"],
         &["serialize"],
         &["serialized"],
-        &["serialized"],
     ],
     range: 2..=9,
 };
@@ -33922,7 +33878,6 @@ pub static WORD_SCE_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dict
         dictgen::InsensitiveStr::Ascii("ond"),
         dictgen::InsensitiveStr::Ascii("onds"),
         dictgen::InsensitiveStr::Ascii("pture"),
-        dictgen::InsensitiveStr::Ascii("stion"),
         dictgen::InsensitiveStr::Ascii("tch"),
         dictgen::InsensitiveStr::Ascii("tched"),
         dictgen::InsensitiveStr::Ascii("tches"),
@@ -33949,7 +33904,6 @@ pub static WORD_SCE_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dict
         &["second"],
         &["seconds"],
         &["sceptre"],
-        &["section"],
         &["sketch"],
         &["sketched"],
         &["sketches"],
@@ -34190,7 +34144,6 @@ static WORD_SCAL_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen:
 
 pub static WORD_SCAL_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dictgen::DictTable {
     keys: &[
-        dictgen::InsensitiveStr::Ascii("arizaiton"),
         dictgen::InsensitiveStr::Ascii("arr"),
         dictgen::InsensitiveStr::Ascii("eability"),
         dictgen::InsensitiveStr::Ascii("eable"),
@@ -34198,14 +34151,13 @@ pub static WORD_SCAL_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dic
         dictgen::InsensitiveStr::Ascii("led"),
     ],
     values: &[
-        &["scalarization"],
         &["scalar"],
         &["scalability"],
         &["scalable"],
         &["scaling"],
         &["scaled"],
     ],
-    range: 3..=9,
+    range: 3..=8,
 };
 
 static WORD_SCAH_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen::DictTrieNode {
@@ -34348,172 +34300,90 @@ pub static WORD_SAU_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dict
 };
 
 static WORD_SAT_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen::DictTrieNode {
-    children: dictgen::DictTrieChild::Nested(&WORD_SAT_CHILDREN),
-    value: None,
-};
-
-static WORD_SAT_CHILDREN: [Option<&dictgen::DictTrieNode<&'static [&'static str]>>; 26] = [
-    Some(&WORD_SATA_NODE),
-    None,
-    None,
-    None,
-    Some(&WORD_SATE_NODE),
-    None,
-    None,
-    None,
-    Some(&WORD_SATI_NODE),
-    None,
-    None,
-    None,
-    None,
-    None,
-    None,
-    None,
-    None,
-    Some(&WORD_SATR_NODE),
-    Some(&WORD_SATS_NODE),
-    Some(&WORD_SATT_NODE),
-    Some(&WORD_SATU_NODE),
-    None,
-    None,
-    None,
-    None,
-    None,
-];
-
-static WORD_SATU_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen::DictTrieNode {
-    children: dictgen::DictTrieChild::Flat(&WORD_SATU_CHILDREN),
+    children: dictgen::DictTrieChild::Flat(&WORD_SAT_CHILDREN),
     value: None,
 };
 
-pub static WORD_SATU_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dictgen::DictTable {
-    keys: &[
-        dictgen::InsensitiveStr::Ascii("aday"),
-        dictgen::InsensitiveStr::Ascii("adays"),
-        dictgen::InsensitiveStr::Ascii("racion"),
-        dictgen::InsensitiveStr::Ascii("rdsy"),
-    ],
-    values: &[
-        &["saturday"],
-        &["saturdays"],
-        &["saturation"],
-        &["saturdays"],
-    ],
-    range: 4..=6,
-};
-
-static WORD_SATT_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen::DictTrieNode {
-    children: dictgen::DictTrieChild::Flat(&WORD_SATT_CHILDREN),
-    value: None,
-};
-
-pub static WORD_SATT_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dictgen::DictTable {
+pub static WORD_SAT_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dictgen::DictTable {
     keys: &[
+        dictgen::InsensitiveStr::Ascii("andard"),
+        dictgen::InsensitiveStr::Ascii("andards"),
+        dictgen::InsensitiveStr::Ascii("asfaction"),
+        dictgen::InsensitiveStr::Ascii("asfactory"),
         dictgen::InsensitiveStr::Ascii("elite"),
         dictgen::InsensitiveStr::Ascii("elites"),
-        dictgen::InsensitiveStr::Ascii("ellite"),
-        dictgen::InsensitiveStr::Ascii("ellites"),
-    ],
-    values: &[
-        &["satellite"],
-        &["satellites"],
-        &["satellite"],
-        &["satellites"],
-    ],
-    range: 5..=7,
-};
-
-static WORD_SATS_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen::DictTrieNode {
-    children: dictgen::DictTrieChild::Flat(&WORD_SATS_CHILDREN),
-    value: None,
-};
-
-pub static WORD_SATS_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dictgen::DictTable {
-    keys: &[
-        dictgen::InsensitiveStr::Ascii("ifaction"),
-        dictgen::InsensitiveStr::Ascii("ifactory"),
+        dictgen::InsensitiveStr::Ascii("elitte"),
+        dictgen::InsensitiveStr::Ascii("ellie"),
+        dictgen::InsensitiveStr::Ascii("ellitte"),
+        dictgen::InsensitiveStr::Ascii("ement"),
+        dictgen::InsensitiveStr::Ascii("ements"),
+        dictgen::InsensitiveStr::Ascii("erday"),
+        dictgen::InsensitiveStr::Ascii("erdays"),
         dictgen::InsensitiveStr::Ascii("ified"),
         dictgen::InsensitiveStr::Ascii("ifies"),
+        dictgen::InsensitiveStr::Ascii("ifsy"),
+        dictgen::InsensitiveStr::Ascii("ifsying"),
         dictgen::InsensitiveStr::Ascii("ify"),
         dictgen::InsensitiveStr::Ascii("ifying"),
-        dictgen::InsensitiveStr::Ascii("ohi"),
-    ],
-    values: &[
-        &["satisfaction"],
-        &["satisfactory"],
-        &["satisfied"],
-        &["satisfies"],
-        &["satisfy"],
-        &["satisfying"],
-        &["satoshi"],
-    ],
-    range: 3..=8,
-};
-
-static WORD_SATR_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen::DictTrieNode {
-    children: dictgen::DictTrieChild::Flat(&WORD_SATR_CHILDREN),
-    value: None,
-};
-
-pub static WORD_SATR_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dictgen::DictTable {
-    keys: &[
-        dictgen::InsensitiveStr::Ascii("ic"),
-        dictgen::InsensitiveStr::Ascii("ical"),
-        dictgen::InsensitiveStr::Ascii("ically"),
-        dictgen::InsensitiveStr::Ascii("uation"),
-        dictgen::InsensitiveStr::Ascii("uday"),
-        dictgen::InsensitiveStr::Ascii("udays"),
-    ],
-    values: &[
-        &["satiric"],
-        &["satirical"],
-        &["satirically"],
-        &["saturation"],
-        &["saturday"],
-        &["saturdays"],
-    ],
-    range: 2..=6,
-};
-
-static WORD_SATI_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen::DictTrieNode {
-    children: dictgen::DictTrieChild::Flat(&WORD_SATI_CHILDREN),
-    value: None,
-};
-
-pub static WORD_SATI_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dictgen::DictTable {
-    keys: &[
-        dictgen::InsensitiveStr::Ascii("fied"),
-        dictgen::InsensitiveStr::Ascii("fies"),
-        dictgen::InsensitiveStr::Ascii("fsy"),
-        dictgen::InsensitiveStr::Ascii("fsying"),
-        dictgen::InsensitiveStr::Ascii("fy"),
-        dictgen::InsensitiveStr::Ascii("fying"),
-        dictgen::InsensitiveStr::Ascii("sfaccion"),
-        dictgen::InsensitiveStr::Ascii("sfacion"),
-        dictgen::InsensitiveStr::Ascii("sfacory"),
-        dictgen::InsensitiveStr::Ascii("sfacting"),
-        dictgen::InsensitiveStr::Ascii("sfactorally"),
-        dictgen::InsensitiveStr::Ascii("sfactoraly"),
-        dictgen::InsensitiveStr::Ascii("sfactorilly"),
-        dictgen::InsensitiveStr::Ascii("sfactority"),
-        dictgen::InsensitiveStr::Ascii("sfactorly"),
-        dictgen::InsensitiveStr::Ascii("sfcation"),
-        dictgen::InsensitiveStr::Ascii("sfiabilty"),
-        dictgen::InsensitiveStr::Ascii("sfiction"),
-        dictgen::InsensitiveStr::Ascii("sfing"),
-        dictgen::InsensitiveStr::Ascii("sfiy"),
-        dictgen::InsensitiveStr::Ascii("sfyied"),
-        dictgen::InsensitiveStr::Ascii("sifed"),
-        dictgen::InsensitiveStr::Ascii("sifes"),
+        dictgen::InsensitiveStr::Ascii("isfaccion"),
+        dictgen::InsensitiveStr::Ascii("isfacion"),
+        dictgen::InsensitiveStr::Ascii("isfacory"),
+        dictgen::InsensitiveStr::Ascii("isfacting"),
+        dictgen::InsensitiveStr::Ascii("isfactorally"),
+        dictgen::InsensitiveStr::Ascii("isfactoraly"),
+        dictgen::InsensitiveStr::Ascii("isfactorilly"),
+        dictgen::InsensitiveStr::Ascii("isfactority"),
+        dictgen::InsensitiveStr::Ascii("isfactorly"),
+        dictgen::InsensitiveStr::Ascii("isfcation"),
+        dictgen::InsensitiveStr::Ascii("isfiabilty"),
+        dictgen::InsensitiveStr::Ascii("isfiction"),
+        dictgen::InsensitiveStr::Ascii("isfing"),
+        dictgen::InsensitiveStr::Ascii("isfiy"),
+        dictgen::InsensitiveStr::Ascii("isfyied"),
+        dictgen::InsensitiveStr::Ascii("isifed"),
+        dictgen::InsensitiveStr::Ascii("isifes"),
+        dictgen::InsensitiveStr::Ascii("isified"),
+        dictgen::InsensitiveStr::Ascii("isifies"),
+        dictgen::InsensitiveStr::Ascii("isify"),
+        dictgen::InsensitiveStr::Ascii("isifying"),
+        dictgen::InsensitiveStr::Ascii("istactory"),
+        dictgen::InsensitiveStr::Ascii("istying"),
+        dictgen::InsensitiveStr::Ascii("isy"),
+        dictgen::InsensitiveStr::Ascii("ric"),
+        dictgen::InsensitiveStr::Ascii("rical"),
+        dictgen::InsensitiveStr::Ascii("rically"),
+        dictgen::InsensitiveStr::Ascii("ruday"),
+        dictgen::InsensitiveStr::Ascii("rudays"),
+        dictgen::InsensitiveStr::Ascii("sifaction"),
+        dictgen::InsensitiveStr::Ascii("sifactory"),
         dictgen::InsensitiveStr::Ascii("sified"),
         dictgen::InsensitiveStr::Ascii("sifies"),
         dictgen::InsensitiveStr::Ascii("sify"),
         dictgen::InsensitiveStr::Ascii("sifying"),
-        dictgen::InsensitiveStr::Ascii("stactory"),
-        dictgen::InsensitiveStr::Ascii("stying"),
-        dictgen::InsensitiveStr::Ascii("sy"),
+        dictgen::InsensitiveStr::Ascii("sohi"),
+        dictgen::InsensitiveStr::Ascii("telite"),
+        dictgen::InsensitiveStr::Ascii("telites"),
+        dictgen::InsensitiveStr::Ascii("tellite"),
+        dictgen::InsensitiveStr::Ascii("tellites"),
+        dictgen::InsensitiveStr::Ascii("uaday"),
+        dictgen::InsensitiveStr::Ascii("uadays"),
+        dictgen::InsensitiveStr::Ascii("uracion"),
+        dictgen::InsensitiveStr::Ascii("urdsy"),
     ],
     values: &[
+        &["standard"],
+        &["standards"],
+        &["satisfaction"],
+        &["satisfactory"],
+        &["satellite"],
+        &["satellites"],
+        &["satellite"],
+        &["satellites"],
+        &["satellites"],
+        &["statement"],
+        &["statements"],
+        &["saturday"],
+        &["saturdays"],
         &["satisfied"],
         &["satisfies"],
         &["satisfy"],
@@ -34544,60 +34414,28 @@ pub static WORD_SATI_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dic
         &["satisfactory"],
         &["satisfying"],
         &["satisfy"],
-    ],
-    range: 2..=11,
-};
-
-static WORD_SATE_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen::DictTrieNode {
-    children: dictgen::DictTrieChild::Flat(&WORD_SATE_CHILDREN),
-    value: None,
-};
-
-pub static WORD_SATE_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dictgen::DictTable {
-    keys: &[
-        dictgen::InsensitiveStr::Ascii("lite"),
-        dictgen::InsensitiveStr::Ascii("lites"),
-        dictgen::InsensitiveStr::Ascii("litte"),
-        dictgen::InsensitiveStr::Ascii("llie"),
-        dictgen::InsensitiveStr::Ascii("llitte"),
-        dictgen::InsensitiveStr::Ascii("ment"),
-        dictgen::InsensitiveStr::Ascii("ments"),
-        dictgen::InsensitiveStr::Ascii("rday"),
-        dictgen::InsensitiveStr::Ascii("rdays"),
-    ],
-    values: &[
+        &["satiric"],
+        &["satirical"],
+        &["satirically"],
+        &["saturday"],
+        &["saturdays"],
+        &["satisfaction"],
+        &["satisfactory"],
+        &["satisfied"],
+        &["satisfies"],
+        &["satisfy"],
+        &["satisfying"],
+        &["satoshi"],
         &["satellite"],
         &["satellites"],
         &["satellite"],
         &["satellites"],
-        &["satellites"],
-        &["statement"],
-        &["statements"],
         &["saturday"],
         &["saturdays"],
+        &["saturation"],
+        &["saturdays"],
     ],
-    range: 4..=6,
-};
-
-static WORD_SATA_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen::DictTrieNode {
-    children: dictgen::DictTrieChild::Flat(&WORD_SATA_CHILDREN),
-    value: None,
-};
-
-pub static WORD_SATA_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dictgen::DictTable {
-    keys: &[
-        dictgen::InsensitiveStr::Ascii("ndard"),
-        dictgen::InsensitiveStr::Ascii("ndards"),
-        dictgen::InsensitiveStr::Ascii("sfaction"),
-        dictgen::InsensitiveStr::Ascii("sfactory"),
-    ],
-    values: &[
-        &["standard"],
-        &["standards"],
-        &["satisfaction"],
-        &["satisfactory"],
-    ],
-    range: 5..=8,
+    range: 3..=12,
 };
 
 static WORD_SAS_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen::DictTrieNode {
@@ -35199,7 +35037,6 @@ pub static WORD_RU_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dictg
         dictgen::InsensitiveStr::Ascii("nnning"),
         dictgen::InsensitiveStr::Ascii("nns"),
         dictgen::InsensitiveStr::Ascii("nnung"),
-        dictgen::InsensitiveStr::Ascii("ntimr"),
         dictgen::InsensitiveStr::Ascii("ntine"),
         dictgen::InsensitiveStr::Ascii("nting"),
         dictgen::InsensitiveStr::Ascii("rrent"),
@@ -35237,7 +35074,6 @@ pub static WORD_RU_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dictg
         &["running"],
         &["runs"],
         &["running"],
-        &["runtime"],
         &["runtime", "routine"],
         &["runtime"],
         &["current"],
@@ -37576,8 +37412,8 @@ pub static WORD_RESS_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dic
     values: &[
         &["recipe"],
         &["resemblance"],
-        &["reassemble", "resemble"],
-        &["reassembled", "resembled"],
+        &["resemble"],
+        &["resembled"],
         &["resemblance"],
         &["resembling"],
         &["resemble"],
@@ -40295,7 +40131,6 @@ pub static WORD_REO_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dict
         dictgen::InsensitiveStr::Ascii("surces"),
         dictgen::InsensitiveStr::Ascii("surcing"),
         dictgen::InsensitiveStr::Ascii("unded"),
-        dictgen::InsensitiveStr::Ascii("urce"),
         dictgen::InsensitiveStr::Ascii("uted"),
         dictgen::InsensitiveStr::Ascii("wrked"),
     ],
@@ -40324,7 +40159,6 @@ pub static WORD_REO_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dict
         &["resources"],
         &["resourcing"],
         &["rounded"],
-        &["resource"],
         &["routed", "rerouted"],
         &["reworked"],
     ],
@@ -44106,7 +43940,6 @@ pub static WORD_REDU_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dic
         dictgen::InsensitiveStr::Ascii("nancy"),
         dictgen::InsensitiveStr::Ascii("nant"),
         dictgen::InsensitiveStr::Ascii("ncancy"),
-        dictgen::InsensitiveStr::Ascii("ncant"),
         dictgen::InsensitiveStr::Ascii("ndacy"),
         dictgen::InsensitiveStr::Ascii("ndantcy"),
         dictgen::InsensitiveStr::Ascii("ndany"),
@@ -44125,7 +43958,6 @@ pub static WORD_REDU_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dic
         &["redundancy"],
         &["redundant"],
         &["redundancy"],
-        &["redundant"],
         &["redundancy"],
         &["redundancy"],
         &["redundancy"],
@@ -45772,7 +45604,6 @@ pub static WORD_REAS_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dic
         dictgen::InsensitiveStr::Ascii("onbly"),
         dictgen::InsensitiveStr::Ascii("onnable"),
         dictgen::InsensitiveStr::Ascii("onnably"),
-        dictgen::InsensitiveStr::Ascii("socation"),
         dictgen::InsensitiveStr::Ascii("socition"),
         dictgen::InsensitiveStr::Ascii("ssign"),
         dictgen::InsensitiveStr::Ascii("sureing"),
@@ -45800,7 +45631,6 @@ pub static WORD_REAS_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dic
         &["reasonable"],
         &["reasonably"],
         &["reassociation"],
-        &["reassociation"],
         &["reassign"],
         &["reassuring"],
         &["reassuring"],
@@ -46400,7 +46230,6 @@ pub static WORD_RAS_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dict
         dictgen::InsensitiveStr::Ascii("pberrry"),
         dictgen::InsensitiveStr::Ascii("pbery"),
         dictgen::InsensitiveStr::Ascii("poberry"),
-        dictgen::InsensitiveStr::Ascii("terizor"),
     ],
     values: &[
         &["raspberry"],
@@ -46414,7 +46243,6 @@ pub static WORD_RAS_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dict
         &["raspberry"],
         &["raspberry"],
         &["raspberry"],
-        &["rasterizer"],
     ],
     range: 2..=7,
 };
@@ -47753,12 +47581,11 @@ static WORD_PUC_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen::
 
 pub static WORD_PUC_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dictgen::DictTable {
     keys: &[
-        dictgen::InsensitiveStr::Ascii("h"),
         dictgen::InsensitiveStr::Ascii("hasing"),
         dictgen::InsensitiveStr::Ascii("ini"),
     ],
-    values: &[&["push"], &["purchasing"], &["puccini"]],
-    range: 1..=6,
+    values: &[&["purchasing"], &["puccini"]],
+    range: 3..=6,
 };
 
 static WORD_PUB_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen::DictTrieNode {
@@ -51952,7 +51779,6 @@ pub static WORD_PREV_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dic
         dictgen::InsensitiveStr::Ascii("erses"),
         dictgen::InsensitiveStr::Ascii("ert"),
         dictgen::InsensitiveStr::Ascii("erve"),
-        dictgen::InsensitiveStr::Ascii("erved"),
         dictgen::InsensitiveStr::Ascii("ew"),
         dictgen::InsensitiveStr::Ascii("ews"),
         dictgen::InsensitiveStr::Ascii("ial"),
@@ -52009,7 +51835,6 @@ pub static WORD_PREV_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dic
         &["preserves"],
         &["pervert"],
         &["preserve"],
-        &["preserved"],
         &["preview"],
         &["previews"],
         &["prevail"],
@@ -56322,7 +56147,6 @@ pub static WORD_PIP_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dict
     keys: &[
         dictgen::InsensitiveStr::Ascii("eine"),
         dictgen::InsensitiveStr::Ascii("eines"),
-        dictgen::InsensitiveStr::Ascii("elien"),
         dictgen::InsensitiveStr::Ascii("elin"),
         dictgen::InsensitiveStr::Ascii("elinining"),
         dictgen::InsensitiveStr::Ascii("elins"),
@@ -56334,13 +56158,11 @@ pub static WORD_PIP_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dict
         dictgen::InsensitiveStr::Ascii("leines"),
         dictgen::InsensitiveStr::Ascii("leline"),
         dictgen::InsensitiveStr::Ascii("lelines"),
-        dictgen::InsensitiveStr::Ascii("line"),
     ],
     values: &[
         &["pipeline"],
         &["pipelines"],
         &["pipeline"],
-        &["pipeline"],
         &["pipelining"],
         &["pipelines"],
         &["pipeline"],
@@ -56351,7 +56173,6 @@ pub static WORD_PIP_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dict
         &["pipelines"],
         &["pipeline"],
         &["pipelines"],
-        &["pipeline"],
     ],
     range: 4..=9,
 };
@@ -63494,9 +63315,8 @@ pub static WORD_ORIN_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dic
     keys: &[
         dictgen::InsensitiveStr::Ascii("gal"),
         dictgen::InsensitiveStr::Ascii("gally"),
-        dictgen::InsensitiveStr::Ascii("ginal"),
     ],
-    values: &[&["original"], &["originally"], &["original"]],
+    values: &[&["original"], &["originally"]],
     range: 3..=5,
 };
 
@@ -64844,8 +64664,6 @@ pub static WORD_OPER_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dic
         dictgen::InsensitiveStr::Ascii("attion"),
         dictgen::InsensitiveStr::Ascii("attions"),
         dictgen::InsensitiveStr::Ascii("eation"),
-        dictgen::InsensitiveStr::Ascii("ration"),
-        dictgen::InsensitiveStr::Ascii("rations"),
         dictgen::InsensitiveStr::Ascii("taion"),
         dictgen::InsensitiveStr::Ascii("taions"),
         dictgen::InsensitiveStr::Ascii("tion"),
@@ -64883,8 +64701,6 @@ pub static WORD_OPER_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dic
         &["operation"],
         &["operations"],
         &["operation"],
-        &["operations"],
-        &["operation"],
         &["operational"],
         &["operations"],
     ],
@@ -65554,11 +65370,10 @@ static WORD_OE_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen::D
 pub static WORD_OE_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dictgen::DictTable {
     keys: &[
         dictgen::InsensitiveStr::Ascii("n"),
-        dictgen::InsensitiveStr::Ascii("pration"),
         dictgen::InsensitiveStr::Ascii("rflow"),
     ],
-    values: &[&["one"], &["operation"], &["overflow"]],
-    range: 1..=7,
+    values: &[&["one"], &["overflow"]],
+    range: 1..=5,
 };
 
 static WORD_OD_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen::DictTrieNode {
@@ -73720,7 +73535,6 @@ pub static WORD_MISA_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dic
     keys: &[
         dictgen::InsensitiveStr::Ascii("lignement"),
         dictgen::InsensitiveStr::Ascii("linged"),
-        dictgen::InsensitiveStr::Ascii("lligned"),
         dictgen::InsensitiveStr::Ascii("nderstood"),
         dictgen::InsensitiveStr::Ascii("ndrony"),
         dictgen::InsensitiveStr::Ascii("ndy"),
@@ -73728,7 +73542,6 @@ pub static WORD_MISA_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dic
     values: &[
         &["misalignment"],
         &["misaligned"],
-        &["misaligned"],
         &["misunderstood"],
         &["misandry"],
         &["misandry"],
@@ -75246,7 +75059,6 @@ pub static WORD_META_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dic
         dictgen::InsensitiveStr::Ascii("bolsim"),
         dictgen::InsensitiveStr::Ascii("charater"),
         dictgen::InsensitiveStr::Ascii("charaters"),
-        dictgen::InsensitiveStr::Ascii("dta"),
         dictgen::InsensitiveStr::Ascii("gaem"),
         dictgen::InsensitiveStr::Ascii("gem"),
         dictgen::InsensitiveStr::Ascii("hpor"),
@@ -75294,7 +75106,6 @@ pub static WORD_META_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dic
         &["metabolism"],
         &["metacharacter"],
         &["metacharacters"],
-        &["metadata"],
         &["metagame"],
         &["metagame"],
         &["metaphor"],
@@ -77365,12 +77176,9 @@ static WORD_MARC_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen:
 };
 
 pub static WORD_MARC_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dictgen::DictTable {
-    keys: &[
-        dictgen::InsensitiveStr::Ascii("hmallows"),
-        dictgen::InsensitiveStr::Ascii("ros"),
-    ],
-    values: &[&["marshmallows"], &["macros"]],
-    range: 3..=8,
+    keys: &[dictgen::InsensitiveStr::Ascii("hmallows")],
+    values: &[&["marshmallows"]],
+    range: 8..=8,
 };
 
 static WORD_MARB_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen::DictTrieNode {
@@ -79127,9 +78935,6 @@ pub static WORD_LOC_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dict
         dictgen::InsensitiveStr::Ascii("altions"),
         dictgen::InsensitiveStr::Ascii("alzation"),
         dictgen::InsensitiveStr::Ascii("atins"),
-        dictgen::InsensitiveStr::Ascii("atio"),
-        dictgen::InsensitiveStr::Ascii("atoin"),
-        dictgen::InsensitiveStr::Ascii("atoins"),
         dictgen::InsensitiveStr::Ascii("cked"),
         dictgen::InsensitiveStr::Ascii("gical"),
         dictgen::InsensitiveStr::Ascii("kacreen"),
@@ -79167,9 +78972,6 @@ pub static WORD_LOC_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dict
         &["locations"],
         &["localization"],
         &["locations"],
-        &["locations"],
-        &["location"],
-        &["locations"],
         &["locked"],
         &["logical"],
         &["lockscreen"],
@@ -81065,9 +80867,8 @@ pub static WORD_LAY_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dict
     keys: &[
         dictgen::InsensitiveStr::Ascii("brinth"),
         dictgen::InsensitiveStr::Ascii("ed"),
-        dictgen::InsensitiveStr::Ascii("our"),
     ],
-    values: &[&["labyrinth"], &["laid"], &["layout"]],
+    values: &[&["labyrinth"], &["laid"]],
     range: 2..=6,
 };
 
@@ -85701,7 +85502,6 @@ pub static WORD_INTERPO_CHILDREN: dictgen::DictTable<&'static [&'static str]> =
             dictgen::InsensitiveStr::Ascii("laion"),
             dictgen::InsensitiveStr::Ascii("laiton"),
             dictgen::InsensitiveStr::Ascii("lar"),
-            dictgen::InsensitiveStr::Ascii("laton"),
             dictgen::InsensitiveStr::Ascii("layed"),
             dictgen::InsensitiveStr::Ascii("rated"),
         ],
@@ -85710,7 +85510,6 @@ pub static WORD_INTERPO_CHILDREN: dictgen::DictTable<&'static [&'static str]> =
             &["interpolation"],
             &["interpolation"],
             &["interpolator"],
-            &["interpolation"],
             &["interpolated"],
             &["interpolated", "interpreted"],
         ],
@@ -86958,9 +86757,7 @@ pub static WORD_INSTR_CHILDREN: dictgen::DictTable<&'static [&'static str]> = di
         dictgen::InsensitiveStr::Ascii("cutor"),
         dictgen::InsensitiveStr::Ascii("cuts"),
         dictgen::InsensitiveStr::Ascii("ead"),
-        dictgen::InsensitiveStr::Ascii("inics"),
         dictgen::InsensitiveStr::Ascii("insic"),
-        dictgen::InsensitiveStr::Ascii("insics"),
         dictgen::InsensitiveStr::Ascii("uccion"),
         dictgen::InsensitiveStr::Ascii("uccions"),
         dictgen::InsensitiveStr::Ascii("ucion"),
@@ -87002,9 +86799,7 @@ pub static WORD_INSTR_CHILDREN: dictgen::DictTable<&'static [&'static str]> = di
         &["instructors"],
         &["instructs"],
         &["instead"],
-        &["intrinsics"],
         &["intrinsic"],
-        &["intrinsics"],
         &["instruction"],
         &["instructions"],
         &["instruction"],
@@ -87668,7 +87463,6 @@ pub static WORD_INSE_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dic
         dictgen::InsensitiveStr::Ascii("pendent"),
         dictgen::InsensitiveStr::Ascii("perable"),
         dictgen::InsensitiveStr::Ascii("psion"),
-        dictgen::InsensitiveStr::Ascii("r"),
         dictgen::InsensitiveStr::Ascii("ring"),
         dictgen::InsensitiveStr::Ascii("rsect"),
         dictgen::InsensitiveStr::Ascii("rsected"),
@@ -87711,7 +87505,6 @@ pub static WORD_INSE_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dic
         &["independent"],
         &["inseparable"],
         &["inception"],
-        &["insert"],
         &["inserting"],
         &["intersect"],
         &["intersected"],
@@ -87726,7 +87519,7 @@ pub static WORD_INSE_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dic
         &["instead"],
         &["inserted"],
     ],
-    range: 1..=10,
+    range: 3..=10,
 };
 
 static WORD_INSD_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen::DictTrieNode {
@@ -88556,8 +88349,6 @@ pub static WORD_INITIA_CHILDREN: dictgen::DictTable<&'static [&'static str]> = d
         dictgen::InsensitiveStr::Ascii("lze"),
         dictgen::InsensitiveStr::Ascii("lzed"),
         dictgen::InsensitiveStr::Ascii("lzes"),
-        dictgen::InsensitiveStr::Ascii("lzie"),
-        dictgen::InsensitiveStr::Ascii("lzier"),
         dictgen::InsensitiveStr::Ascii("lzing"),
         dictgen::InsensitiveStr::Ascii("tie"),
         dictgen::InsensitiveStr::Ascii("ties"),
@@ -88615,8 +88406,6 @@ pub static WORD_INITIA_CHILDREN: dictgen::DictTable<&'static [&'static str]> = d
         &["initialize"],
         &["initialized"],
         &["initializes"],
-        &["initialize"],
-        &["initializer"],
         &["initializing"],
         &["initiatives"],
         &["initiatives"],
@@ -89585,7 +89374,7 @@ static WORD_INE_CHILDREN: [Option<&dictgen::DictTrieNode<&'static [&'static str]
 
 static WORD_INEX_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen::DictTrieNode {
     children: dictgen::DictTrieChild::Flat(&WORD_INEX_CHILDREN),
-    value: Some(&["index"]),
+    value: None,
 };
 
 pub static WORD_INEX_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dictgen::DictTable {
@@ -93069,7 +92858,6 @@ pub static WORD_IMPLEMET_CHILDREN: dictgen::DictTable<&'static [&'static str]> =
             dictgen::InsensitiveStr::Ascii("ation"),
             dictgen::InsensitiveStr::Ascii("ations"),
             dictgen::InsensitiveStr::Ascii("ed"),
-            dictgen::InsensitiveStr::Ascii("end"),
             dictgen::InsensitiveStr::Ascii("ing"),
             dictgen::InsensitiveStr::Ascii("nation"),
             dictgen::InsensitiveStr::Ascii("s"),
@@ -93078,7 +92866,6 @@ pub static WORD_IMPLEMET_CHILDREN: dictgen::DictTable<&'static [&'static str]> =
             &["implementation"],
             &["implementations"],
             &["implemented"],
-            &["implemented"],
             &["implementing"],
             &["implementations", "implementation"],
             &["implements"],
@@ -100156,7 +99943,6 @@ pub static WORD_GOR_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dict
         dictgen::InsensitiveStr::Ascii("may"),
         dictgen::InsensitiveStr::Ascii("ry"),
         dictgen::InsensitiveStr::Ascii("umet"),
-        dictgen::InsensitiveStr::Ascii("up"),
         dictgen::InsensitiveStr::Ascii("vement"),
     ],
     values: &[
@@ -100169,7 +99955,6 @@ pub static WORD_GOR_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dict
         &["gourmet"],
         &["gory"],
         &["gourmet"],
-        &["group"],
         &["government"],
     ],
     range: 1..=10,
@@ -102160,7 +101945,6 @@ pub static WORD_FUNT_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dic
         dictgen::InsensitiveStr::Ascii("ionalty"),
         dictgen::InsensitiveStr::Ascii("ioning"),
         dictgen::InsensitiveStr::Ascii("ions"),
-        dictgen::InsensitiveStr::Ascii("ure"),
     ],
     values: &[
         &["function"],
@@ -102172,7 +101956,6 @@ pub static WORD_FUNT_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dic
         &["functionality"],
         &["functioning"],
         &["functions"],
-        &["future"],
     ],
     range: 3..=10,
 };
@@ -114601,8 +114384,6 @@ pub static WORD_ENU_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dict
         dictgen::InsensitiveStr::Ascii("mearation"),
         dictgen::InsensitiveStr::Ascii("merble"),
         dictgen::InsensitiveStr::Ascii("mertaion"),
-        dictgen::InsensitiveStr::Ascii("mrate"),
-        dictgen::InsensitiveStr::Ascii("mrates"),
         dictgen::InsensitiveStr::Ascii("sre"),
     ],
     values: &[
@@ -114616,8 +114397,6 @@ pub static WORD_ENU_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dict
         &["enumeration"],
         &["enumerable"],
         &["enumeration"],
-        &["enumerate"],
-        &["enumerates"],
         &["ensure"],
     ],
     range: 3..=9,
@@ -116018,7 +115797,6 @@ static WORD_ENA_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen::
 
 pub static WORD_ENA_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dictgen::DictTable {
     keys: &[
-        dictgen::InsensitiveStr::Ascii("able"),
         dictgen::InsensitiveStr::Ascii("be"),
         dictgen::InsensitiveStr::Ascii("bel"),
         dictgen::InsensitiveStr::Ascii("beled"),
@@ -116036,7 +115814,6 @@ pub static WORD_ENA_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dict
         dictgen::InsensitiveStr::Ascii("ugh"),
     ],
     values: &[
-        &["enable"],
         &["enable"],
         &["enable"],
         &["enabled"],
@@ -116739,7 +116516,6 @@ pub static WORD_ELI_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dict
     keys: &[
         dictgen::InsensitiveStr::Ascii("cided"),
         dictgen::InsensitiveStr::Ascii("gable"),
-        dictgen::InsensitiveStr::Ascii("gble"),
         dictgen::InsensitiveStr::Ascii("manates"),
         dictgen::InsensitiveStr::Ascii("manation"),
         dictgen::InsensitiveStr::Ascii("menates"),
@@ -116773,7 +116549,6 @@ pub static WORD_ELI_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dict
     values: &[
         &["elicited"],
         &["eligible"],
-        &["eligible"],
         &["eliminates"],
         &["elimination"],
         &["eliminates"],
@@ -118967,7 +118742,7 @@ static WORD_DOW_CHILDREN: [Option<&dictgen::DictTrieNode<&'static [&'static str]
     None,
     None,
     None,
-    Some(&WORD_DOWR_NODE),
+    None,
     Some(&WORD_DOWS_NODE),
     Some(&WORD_DOWT_NODE),
     None,
@@ -119000,20 +118775,6 @@ pub static WORD_DOWS_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dic
     range: 0..=0,
 };
 
-static WORD_DOWR_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen::DictTrieNode {
-    children: dictgen::DictTrieChild::Flat(&WORD_DOWR_CHILDREN),
-    value: None,
-};
-
-pub static WORD_DOWR_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dictgen::DictTable {
-    keys: &[
-        dictgen::InsensitiveStr::Ascii("d"),
-        dictgen::InsensitiveStr::Ascii("ds"),
-    ],
-    values: &[&["dword"], &["dwords"]],
-    range: 1..=2,
-};
-
 static WORD_DOWN_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen::DictTrieNode {
     children: dictgen::DictTrieChild::Nested(&WORD_DOWN_CHILDREN),
     value: None,
@@ -127036,7 +126797,6 @@ pub static WORD_DESCRI_CHILDREN: dictgen::DictTable<&'static [&'static str]> = d
         dictgen::InsensitiveStr::Ascii("pition"),
         dictgen::InsensitiveStr::Ascii("piton"),
         dictgen::InsensitiveStr::Ascii("por"),
-        dictgen::InsensitiveStr::Ascii("potrs"),
         dictgen::InsensitiveStr::Ascii("pters"),
         dictgen::InsensitiveStr::Ascii("ptio"),
         dictgen::InsensitiveStr::Ascii("ptiom"),
@@ -127095,7 +126855,6 @@ pub static WORD_DESCRI_CHILDREN: dictgen::DictTable<&'static [&'static str]> = d
         &["descriptions"],
         &["descriptor"],
         &["descriptors"],
-        &["descriptors"],
         &["description"],
         &["description"],
         &["description"],
@@ -132401,7 +132160,7 @@ static WORD_C_CHILDREN: [Option<&dictgen::DictTrieNode<&'static [&'static str]>>
     Some(&WORD_CP_NODE),
     None,
     Some(&WORD_CR_NODE),
-    Some(&WORD_CS_NODE),
+    None,
     Some(&WORD_CT_NODE),
     Some(&WORD_CU_NODE),
     Some(&WORD_CV_NODE),
@@ -133335,17 +133094,6 @@ pub static WORD_CT_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dictg
     range: 5..=9,
 };
 
-static WORD_CS_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen::DictTrieNode {
-    children: dictgen::DictTrieChild::Flat(&WORD_CS_CHILDREN),
-    value: None,
-};
-
-pub static WORD_CS_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dictgen::DictTable {
-    keys: &[dictgen::InsensitiveStr::Ascii("ses")],
-    values: &[&["cases"]],
-    range: 3..=3,
-};
-
 static WORD_CR_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen::DictTrieNode {
     children: dictgen::DictTrieChild::Nested(&WORD_CR_CHILDREN),
     value: None,
@@ -136003,11 +135751,17 @@ static WORD_CORD_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen:
 
 pub static WORD_CORD_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dictgen::DictTable {
     keys: &[
+        dictgen::InsensitiveStr::Ascii("inate"),
         dictgen::InsensitiveStr::Ascii("inates"),
         dictgen::InsensitiveStr::Ascii("oroy"),
         dictgen::InsensitiveStr::Ascii("ump"),
     ],
-    values: &[&["coordinates"], &["corduroy"], &["coredump"]],
+    values: &[
+        &["coordinate"],
+        &["coordinates"],
+        &["corduroy"],
+        &["coredump"],
+    ],
     range: 3..=6,
 };
 
@@ -136526,7 +136280,6 @@ pub static WORD_COORD_CHILDREN: dictgen::DictTable<&'static [&'static str]> = di
     keys: &[
         dictgen::InsensitiveStr::Ascii("anate"),
         dictgen::InsensitiveStr::Ascii("anates"),
-        dictgen::InsensitiveStr::Ascii("ate"),
         dictgen::InsensitiveStr::Ascii("enate"),
         dictgen::InsensitiveStr::Ascii("enated"),
         dictgen::InsensitiveStr::Ascii("enates"),
@@ -136581,7 +136334,6 @@ pub static WORD_COORD_CHILDREN: dictgen::DictTable<&'static [&'static str]> = di
     values: &[
         &["coordinate"],
         &["coordinates"],
-        &["cordinate"],
         &["coordinate"],
         &["coordinated"],
         &["coordinates"],
@@ -136643,7 +136395,6 @@ static WORD_COOP_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen:
 
 pub static WORD_COOP_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dictgen::DictTable {
     keys: &[
-        dictgen::InsensitiveStr::Ascii("aretive"),
         dictgen::InsensitiveStr::Ascii("earte"),
         dictgen::InsensitiveStr::Ascii("eartes"),
         dictgen::InsensitiveStr::Ascii("eracion"),
@@ -136653,7 +136404,6 @@ pub static WORD_COOP_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dic
         dictgen::InsensitiveStr::Ascii("orative"),
     ],
     values: &[
-        &["cooperative"],
         &["cooperate"],
         &["cooperates"],
         &["cooperation"],
@@ -137986,7 +137736,6 @@ pub static WORD_CONTRA_CHILDREN: dictgen::DictTable<&'static [&'static str]> = d
         dictgen::InsensitiveStr::Ascii("dictons"),
         dictgen::InsensitiveStr::Ascii("dtion"),
         dictgen::InsensitiveStr::Ascii("ined"),
-        dictgen::InsensitiveStr::Ascii("iners"),
         dictgen::InsensitiveStr::Ascii("ining"),
         dictgen::InsensitiveStr::Ascii("int"),
         dictgen::InsensitiveStr::Ascii("ints"),
@@ -138037,7 +137786,6 @@ pub static WORD_CONTRA_CHILDREN: dictgen::DictTable<&'static [&'static str]> = d
         &["contradicts"],
         &["contraction"],
         &["contained", "constrained"],
-        &["containers"],
         &["constraining"],
         &["constraint"],
         &["constraints"],
@@ -139757,8 +139505,6 @@ pub static WORD_CONSTA_CHILDREN: dictgen::DictTable<&'static [&'static str]> = d
         dictgen::InsensitiveStr::Ascii("ints"),
         dictgen::InsensitiveStr::Ascii("llation"),
         dictgen::InsensitiveStr::Ascii("llations"),
-        dictgen::InsensitiveStr::Ascii("nd"),
-        dictgen::InsensitiveStr::Ascii("ndly"),
         dictgen::InsensitiveStr::Ascii("nly"),
         dictgen::InsensitiveStr::Ascii("ns"),
         dictgen::InsensitiveStr::Ascii("nst"),
@@ -139772,7 +139518,6 @@ pub static WORD_CONSTA_CHILDREN: dictgen::DictTable<&'static [&'static str]> = d
         dictgen::InsensitiveStr::Ascii("st"),
         dictgen::InsensitiveStr::Ascii("tn"),
         dictgen::InsensitiveStr::Ascii("tnly"),
-        dictgen::InsensitiveStr::Ascii("tns"),
         dictgen::InsensitiveStr::Ascii("tnt"),
         dictgen::InsensitiveStr::Ascii("tnts"),
     ],
@@ -139784,8 +139529,6 @@ pub static WORD_CONSTA_CHILDREN: dictgen::DictTable<&'static [&'static str]> = d
         &["constraints"],
         &["constellation"],
         &["constellations"],
-        &["constant"],
-        &["constantly"],
         &["constantly"],
         &["constants"],
         &["constants"],
@@ -139799,7 +139542,6 @@ pub static WORD_CONSTA_CHILDREN: dictgen::DictTable<&'static [&'static str]> = d
         &["constants"],
         &["constant"],
         &["constantly"],
-        &["constants"],
         &["constant"],
         &["constants"],
     ],
@@ -146406,7 +146148,6 @@ pub static WORD_COMA_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dic
         dictgen::InsensitiveStr::Ascii("ptible"),
         dictgen::InsensitiveStr::Ascii("rators"),
         dictgen::InsensitiveStr::Ascii("rde"),
-        dictgen::InsensitiveStr::Ascii("tible"),
     ],
     values: &[
         &["comrades"],
@@ -146438,7 +146179,6 @@ pub static WORD_COMA_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dic
         &["compatible"],
         &["comparators"],
         &["comrade"],
-        &["compatible"],
     ],
     range: 2..=10,
 };
@@ -148149,115 +147889,107 @@ pub static WORD_CLC_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dict
 };
 
 static WORD_CLA_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen::DictTrieNode {
-    children: dictgen::DictTrieChild::Nested(&WORD_CLA_CHILDREN),
+    children: dictgen::DictTrieChild::Flat(&WORD_CLA_CHILDREN),
     value: None,
 };
 
-static WORD_CLA_CHILDREN: [Option<&dictgen::DictTrieNode<&'static [&'static str]>>; 26] = [
-    Some(&WORD_CLAA_NODE),
-    None,
-    Some(&WORD_CLAC_NODE),
-    None,
-    Some(&WORD_CLAE_NODE),
-    None,
-    Some(&WORD_CLAG_NODE),
-    None,
-    Some(&WORD_CLAI_NODE),
-    None,
-    None,
-    None,
-    Some(&WORD_CLAM_NODE),
-    Some(&WORD_CLAN_NODE),
-    None,
-    None,
-    None,
-    Some(&WORD_CLAR_NODE),
-    Some(&WORD_CLAS_NODE),
-    Some(&WORD_CLAT_NODE),
-    Some(&WORD_CLAU_NODE),
-    None,
-    None,
-    None,
-    Some(&WORD_CLAY_NODE),
-    None,
-];
-
-static WORD_CLAY_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen::DictTrieNode {
-    children: dictgen::DictTrieChild::Flat(&WORD_CLAY_CHILDREN),
-    value: None,
-};
-
-pub static WORD_CLAY_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dictgen::DictTable {
-    keys: &[
-        dictgen::InsensitiveStr::Ascii("mer"),
-        dictgen::InsensitiveStr::Ascii("moe"),
-    ],
-    values: &[&["claymore"], &["claymore"]],
-    range: 3..=3,
-};
-
-static WORD_CLAU_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen::DictTrieNode {
-    children: dictgen::DictTrieChild::Flat(&WORD_CLAU_CHILDREN),
-    value: None,
-};
-
-pub static WORD_CLAU_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dictgen::DictTable {
+pub static WORD_CLA_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dictgen::DictTable {
     keys: &[
+        dictgen::InsensitiveStr::Ascii("aes"),
+        dictgen::InsensitiveStr::Ascii("cium"),
+        dictgen::InsensitiveStr::Ascii("culate"),
+        dictgen::InsensitiveStr::Ascii("culation"),
+        dictgen::InsensitiveStr::Ascii("culations"),
+        dictgen::InsensitiveStr::Ascii("culator"),
+        dictgen::InsensitiveStr::Ascii("culators"),
+        dictgen::InsensitiveStr::Ascii("er"),
+        dictgen::InsensitiveStr::Ascii("erer"),
+        dictgen::InsensitiveStr::Ascii("erly"),
+        dictgen::InsensitiveStr::Ascii("gary"),
+        dictgen::InsensitiveStr::Ascii("ibre"),
+        dictgen::InsensitiveStr::Ascii("ibscale"),
+        dictgen::InsensitiveStr::Ascii("ime"),
+        dictgen::InsensitiveStr::Ascii("imes"),
+        dictgen::InsensitiveStr::Ascii("irfy"),
+        dictgen::InsensitiveStr::Ascii("irfying"),
+        dictgen::InsensitiveStr::Ascii("irty"),
+        dictgen::InsensitiveStr::Ascii("me"),
+        dictgen::InsensitiveStr::Ascii("nand"),
+        dictgen::InsensitiveStr::Ascii("nnand"),
+        dictgen::InsensitiveStr::Ascii("read"),
+        dictgen::InsensitiveStr::Ascii("red"),
+        dictgen::InsensitiveStr::Ascii("rety"),
+        dictgen::InsensitiveStr::Ascii("rfiy"),
+        dictgen::InsensitiveStr::Ascii("rificaiton"),
+        dictgen::InsensitiveStr::Ascii("rifiy"),
+        dictgen::InsensitiveStr::Ascii("ring"),
+        dictgen::InsensitiveStr::Ascii("rskon"),
         dictgen::InsensitiveStr::Ascii("s"),
-        dictgen::InsensitiveStr::Ascii("sens"),
-    ],
-    values: &[&["clause"], &["clauses"]],
-    range: 1..=4,
-};
-
-static WORD_CLAT_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen::DictTrieNode {
-    children: dictgen::DictTrieChild::Flat(&WORD_CLAT_CHILDREN),
-    value: None,
-};
-
-pub static WORD_CLAT_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dictgen::DictTable {
-    keys: &[dictgen::InsensitiveStr::Ascii("ified")],
-    values: &[&["clarified"]],
-    range: 5..=5,
-};
-
-static WORD_CLAS_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen::DictTrieNode {
-    children: dictgen::DictTrieChild::Flat(&WORD_CLAS_CHILDREN),
-    value: Some(&["class"]),
-};
-
-pub static WORD_CLAS_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dictgen::DictTable {
-    keys: &[
-        dictgen::InsensitiveStr::Ascii("ic"),
-        dictgen::InsensitiveStr::Ascii("ical"),
-        dictgen::InsensitiveStr::Ascii("ically"),
-        dictgen::InsensitiveStr::Ascii("ification"),
-        dictgen::InsensitiveStr::Ascii("ified"),
-        dictgen::InsensitiveStr::Ascii("ifies"),
-        dictgen::InsensitiveStr::Ascii("ify"),
-        dictgen::InsensitiveStr::Ascii("ifying"),
-        dictgen::InsensitiveStr::Ascii("se"),
-        dictgen::InsensitiveStr::Ascii("sess"),
-        dictgen::InsensitiveStr::Ascii("sesss"),
-        dictgen::InsensitiveStr::Ascii("sicals"),
-        dictgen::InsensitiveStr::Ascii("sicos"),
-        dictgen::InsensitiveStr::Ascii("sicus"),
-        dictgen::InsensitiveStr::Ascii("sifed"),
-        dictgen::InsensitiveStr::Ascii("sifer"),
-        dictgen::InsensitiveStr::Ascii("sifers"),
-        dictgen::InsensitiveStr::Ascii("sificaiton"),
-        dictgen::InsensitiveStr::Ascii("sificato"),
-        dictgen::InsensitiveStr::Ascii("sifides"),
-        dictgen::InsensitiveStr::Ascii("sifiy"),
-        dictgen::InsensitiveStr::Ascii("sis"),
-        dictgen::InsensitiveStr::Ascii("srom"),
-        dictgen::InsensitiveStr::Ascii("srooom"),
-        dictgen::InsensitiveStr::Ascii("ss"),
-        dictgen::InsensitiveStr::Ascii("sses"),
-        dictgen::InsensitiveStr::Ascii("ssic"),
-        dictgen::InsensitiveStr::Ascii("ues"),
+        dictgen::InsensitiveStr::Ascii("sic"),
+        dictgen::InsensitiveStr::Ascii("sical"),
+        dictgen::InsensitiveStr::Ascii("sically"),
+        dictgen::InsensitiveStr::Ascii("sification"),
+        dictgen::InsensitiveStr::Ascii("sified"),
+        dictgen::InsensitiveStr::Ascii("sifies"),
+        dictgen::InsensitiveStr::Ascii("sify"),
+        dictgen::InsensitiveStr::Ascii("sifying"),
+        dictgen::InsensitiveStr::Ascii("sse"),
+        dictgen::InsensitiveStr::Ascii("ssess"),
+        dictgen::InsensitiveStr::Ascii("ssesss"),
+        dictgen::InsensitiveStr::Ascii("ssicals"),
+        dictgen::InsensitiveStr::Ascii("ssicos"),
+        dictgen::InsensitiveStr::Ascii("ssicus"),
+        dictgen::InsensitiveStr::Ascii("ssifed"),
+        dictgen::InsensitiveStr::Ascii("ssifer"),
+        dictgen::InsensitiveStr::Ascii("ssifers"),
+        dictgen::InsensitiveStr::Ascii("ssificaiton"),
+        dictgen::InsensitiveStr::Ascii("ssificato"),
+        dictgen::InsensitiveStr::Ascii("ssifides"),
+        dictgen::InsensitiveStr::Ascii("ssifiy"),
+        dictgen::InsensitiveStr::Ascii("ssis"),
+        dictgen::InsensitiveStr::Ascii("ssrom"),
+        dictgen::InsensitiveStr::Ascii("ssrooom"),
+        dictgen::InsensitiveStr::Ascii("sss"),
+        dictgen::InsensitiveStr::Ascii("ssses"),
+        dictgen::InsensitiveStr::Ascii("sssic"),
+        dictgen::InsensitiveStr::Ascii("sues"),
+        dictgen::InsensitiveStr::Ascii("tified"),
+        dictgen::InsensitiveStr::Ascii("us"),
+        dictgen::InsensitiveStr::Ascii("usens"),
+        dictgen::InsensitiveStr::Ascii("ymer"),
+        dictgen::InsensitiveStr::Ascii("ymoe"),
     ],
     values: &[
+        &["classes"],
+        &["calcium"],
+        &["calculate"],
+        &["calculation"],
+        &["calculations"],
+        &["calculator"],
+        &["calculators"],
+        &["clear"],
+        &["clearer"],
+        &["clearly"],
+        &["calgary"],
+        &["calibre"],
+        &["calibscale"],
+        &["claim"],
+        &["claims"],
+        &["clarify"],
+        &["clarifying"],
+        &["clarity"],
+        &["claim"],
+        &["clannad"],
+        &["clannad"],
+        &["cleared"],
+        &["cleared"],
+        &["clarity"],
+        &["clarify"],
+        &["clarification"],
+        &["clarify"],
+        &["clearing"],
+        &["clarkson"],
+        &["class"],
         &["classic"],
         &["classical"],
         &["classically"],
@@ -148286,154 +148018,13 @@ pub static WORD_CLAS_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dic
         &["classes"],
         &["classics"],
         &["clauses"],
+        &["clarified"],
+        &["clause"],
+        &["clauses"],
+        &["claymore"],
+        &["claymore"],
     ],
-    range: 2..=10,
-};
-
-static WORD_CLAR_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen::DictTrieNode {
-    children: dictgen::DictTrieChild::Flat(&WORD_CLAR_CHILDREN),
-    value: None,
-};
-
-pub static WORD_CLAR_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dictgen::DictTable {
-    keys: &[
-        dictgen::InsensitiveStr::Ascii("ead"),
-        dictgen::InsensitiveStr::Ascii("ed"),
-        dictgen::InsensitiveStr::Ascii("ety"),
-        dictgen::InsensitiveStr::Ascii("fiy"),
-        dictgen::InsensitiveStr::Ascii("ificaiton"),
-        dictgen::InsensitiveStr::Ascii("ifiy"),
-        dictgen::InsensitiveStr::Ascii("ing"),
-        dictgen::InsensitiveStr::Ascii("skon"),
-    ],
-    values: &[
-        &["cleared"],
-        &["cleared"],
-        &["clarity"],
-        &["clarify"],
-        &["clarification"],
-        &["clarify"],
-        &["clearing"],
-        &["clarkson"],
-    ],
-    range: 2..=9,
-};
-
-static WORD_CLAN_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen::DictTrieNode {
-    children: dictgen::DictTrieChild::Flat(&WORD_CLAN_CHILDREN),
-    value: None,
-};
-
-pub static WORD_CLAN_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dictgen::DictTable {
-    keys: &[
-        dictgen::InsensitiveStr::Ascii("and"),
-        dictgen::InsensitiveStr::Ascii("nand"),
-    ],
-    values: &[&["clannad"], &["clannad"]],
-    range: 3..=4,
-};
-
-static WORD_CLAM_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen::DictTrieNode {
-    children: dictgen::DictTrieChild::Flat(&WORD_CLAM_CHILDREN),
-    value: None,
-};
-
-pub static WORD_CLAM_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dictgen::DictTable {
-    keys: &[
-        dictgen::InsensitiveStr::Ascii("e"),
-        dictgen::InsensitiveStr::Ascii("pled"),
-    ],
-    values: &[&["claim"], &["clamped"]],
-    range: 1..=4,
-};
-
-static WORD_CLAI_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen::DictTrieNode {
-    children: dictgen::DictTrieChild::Flat(&WORD_CLAI_CHILDREN),
-    value: None,
-};
-
-pub static WORD_CLAI_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dictgen::DictTable {
-    keys: &[
-        dictgen::InsensitiveStr::Ascii("bre"),
-        dictgen::InsensitiveStr::Ascii("bscale"),
-        dictgen::InsensitiveStr::Ascii("me"),
-        dictgen::InsensitiveStr::Ascii("mes"),
-        dictgen::InsensitiveStr::Ascii("rfy"),
-        dictgen::InsensitiveStr::Ascii("rfying"),
-        dictgen::InsensitiveStr::Ascii("rty"),
-    ],
-    values: &[
-        &["calibre"],
-        &["calibscale"],
-        &["claim"],
-        &["claims"],
-        &["clarify"],
-        &["clarifying"],
-        &["clarity"],
-    ],
-    range: 2..=6,
-};
-
-static WORD_CLAG_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen::DictTrieNode {
-    children: dictgen::DictTrieChild::Flat(&WORD_CLAG_CHILDREN),
-    value: None,
-};
-
-pub static WORD_CLAG_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dictgen::DictTable {
-    keys: &[dictgen::InsensitiveStr::Ascii("ary")],
-    values: &[&["calgary"]],
-    range: 3..=3,
-};
-
-static WORD_CLAE_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen::DictTrieNode {
-    children: dictgen::DictTrieChild::Flat(&WORD_CLAE_CHILDREN),
-    value: None,
-};
-
-pub static WORD_CLAE_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dictgen::DictTable {
-    keys: &[
-        dictgen::InsensitiveStr::Ascii("r"),
-        dictgen::InsensitiveStr::Ascii("rer"),
-        dictgen::InsensitiveStr::Ascii("rly"),
-    ],
-    values: &[&["clear"], &["clearer"], &["clearly"]],
-    range: 1..=3,
-};
-
-static WORD_CLAC_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen::DictTrieNode {
-    children: dictgen::DictTrieChild::Flat(&WORD_CLAC_CHILDREN),
-    value: None,
-};
-
-pub static WORD_CLAC_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dictgen::DictTable {
-    keys: &[
-        dictgen::InsensitiveStr::Ascii("ium"),
-        dictgen::InsensitiveStr::Ascii("ulate"),
-        dictgen::InsensitiveStr::Ascii("ulation"),
-        dictgen::InsensitiveStr::Ascii("ulations"),
-        dictgen::InsensitiveStr::Ascii("ulator"),
-        dictgen::InsensitiveStr::Ascii("ulators"),
-    ],
-    values: &[
-        &["calcium"],
-        &["calculate"],
-        &["calculation"],
-        &["calculations"],
-        &["calculator"],
-        &["calculators"],
-    ],
-    range: 3..=8,
-};
-
-static WORD_CLAA_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen::DictTrieNode {
-    children: dictgen::DictTrieChild::Flat(&WORD_CLAA_CHILDREN),
-    value: None,
-};
-
-pub static WORD_CLAA_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dictgen::DictTable {
-    keys: &[dictgen::InsensitiveStr::Ascii("es")],
-    values: &[&["classes"]],
-    range: 2..=2,
+    range: 1..=11,
 };
 
 static WORD_CK_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen::DictTrieNode {
@@ -154041,7 +153632,6 @@ pub static WORD_CALC_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dic
         dictgen::InsensitiveStr::Ascii("ualtor"),
         dictgen::InsensitiveStr::Ascii("ualtors"),
         dictgen::InsensitiveStr::Ascii("uate"),
-        dictgen::InsensitiveStr::Ascii("uated"),
         dictgen::InsensitiveStr::Ascii("uations"),
         dictgen::InsensitiveStr::Ascii("uim"),
         dictgen::InsensitiveStr::Ascii("ulador"),
@@ -154098,7 +153688,6 @@ pub static WORD_CALC_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dic
         &["calculator"],
         &["calculators"],
         &["calculate"],
-        &["calculated"],
         &["calculations"],
         &["calcium"],
         &["calculator"],
@@ -156325,7 +155914,6 @@ pub static WORD_BOT_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dict
         dictgen::InsensitiveStr::Ascii("tlenects"),
         dictgen::InsensitiveStr::Ascii("tlneck"),
         dictgen::InsensitiveStr::Ascii("tlnecks"),
-        dictgen::InsensitiveStr::Ascii("tm"),
         dictgen::InsensitiveStr::Ascii("tomborde"),
         dictgen::InsensitiveStr::Ascii("tome"),
         dictgen::InsensitiveStr::Ascii("ton"),
@@ -156345,7 +155933,6 @@ pub static WORD_BOT_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dict
         &["bottlenecks"],
         &["bottleneck"],
         &["bottlenecks"],
-        &["bottom"],
         &["bottomborder"],
         &["bottom"],
         &["bottom", "button"],
@@ -157219,7 +156806,6 @@ pub static WORD_BIT_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dict
         dictgen::InsensitiveStr::Ascii("cion"),
         dictgen::InsensitiveStr::Ascii("cions"),
         dictgen::InsensitiveStr::Ascii("coints"),
-        dictgen::InsensitiveStr::Ascii("fied"),
         dictgen::InsensitiveStr::Ascii("fileld"),
         dictgen::InsensitiveStr::Ascii("filelds"),
         dictgen::InsensitiveStr::Ascii("hced"),
@@ -157242,7 +156828,6 @@ pub static WORD_BIT_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dict
         &["bitcoins"],
         &["bitcoins"],
         &["bitfield"],
-        &["bitfield"],
         &["bitfields"],
         &["bitched"],
         &["bitches"],
@@ -157583,12 +157168,11 @@ static WORD_BIC_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen::
 
 pub static WORD_BIC_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dictgen::DictTable {
     keys: &[
-        dictgen::InsensitiveStr::Ascii("ast"),
         dictgen::InsensitiveStr::Ascii("thes"),
         dictgen::InsensitiveStr::Ascii("ylces"),
     ],
-    values: &[&["bitcast"], &["bitches"], &["bicycles"]],
-    range: 3..=5,
+    values: &[&["bitches"], &["bicycles"]],
+    range: 4..=5,
 };
 
 static WORD_BIB_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen::DictTrieNode {
@@ -159111,7 +158695,7 @@ pub static WORD_BAN_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dict
     ],
     values: &[
         &["bananas"],
-        &["bank", "branch", "bench"],
+        &["branch", "bench"],
         &["branched", "benched"],
         &["branches", "benches"],
         &["bandits"],
@@ -163723,7 +163307,6 @@ static WORD_ASSA_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen:
 pub static WORD_ASSA_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dictgen::DictTable {
     keys: &[
         dictgen::InsensitiveStr::Ascii("gne"),
-        dictgen::InsensitiveStr::Ascii("mble"),
         dictgen::InsensitiveStr::Ascii("sin"),
         dictgen::InsensitiveStr::Ascii("sinate"),
         dictgen::InsensitiveStr::Ascii("sinated"),
@@ -163751,7 +163334,6 @@ pub static WORD_ASSA_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dic
     ],
     values: &[
         &["assange"],
-        &["assemble"],
         &["assassin"],
         &["assassinate"],
         &["assassinated"],
@@ -170271,7 +169853,6 @@ pub static WORD_ALI_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dict
         dictgen::InsensitiveStr::Ascii("gnemt"),
         dictgen::InsensitiveStr::Ascii("gnes"),
         dictgen::InsensitiveStr::Ascii("gnmant"),
-        dictgen::InsensitiveStr::Ascii("gnmeent"),
         dictgen::InsensitiveStr::Ascii("gnmen"),
         dictgen::InsensitiveStr::Ascii("gnmenet"),
         dictgen::InsensitiveStr::Ascii("gnmenets"),
@@ -170324,7 +169905,6 @@ pub static WORD_ALI_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dict
         &["alignment"],
         &["alignment"],
         &["alignment"],
-        &["alignment"],
         &["alignments"],
         &["alignments"],
         &["alignment"],
@@ -171121,14 +170701,12 @@ static WORD_ALGE_NODE: dictgen::DictTrieNode<&'static [&'static str]> = dictgen:
 pub static WORD_ALGE_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dictgen::DictTable {
     keys: &[
         dictgen::InsensitiveStr::Ascii("braical"),
-        dictgen::InsensitiveStr::Ascii("briac"),
         dictgen::InsensitiveStr::Ascii("bric"),
         dictgen::InsensitiveStr::Ascii("brra"),
         dictgen::InsensitiveStr::Ascii("e"),
         dictgen::InsensitiveStr::Ascii("rba"),
     ],
     values: &[
-        &["algebraic"],
         &["algebraic"],
         &["algebraic"],
         &["algebra"],
@@ -174401,7 +173979,6 @@ pub static WORD_ACCU_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dic
         dictgen::InsensitiveStr::Ascii("mulato"),
         dictgen::InsensitiveStr::Ascii("mulaton"),
         dictgen::InsensitiveStr::Ascii("mule"),
-        dictgen::InsensitiveStr::Ascii("mulotor"),
         dictgen::InsensitiveStr::Ascii("multed"),
         dictgen::InsensitiveStr::Ascii("pied"),
         dictgen::InsensitiveStr::Ascii("pts"),
@@ -174459,7 +174036,6 @@ pub static WORD_ACCU_CHILDREN: dictgen::DictTable<&'static [&'static str]> = dic
         &["accumulation"],
         &["accumulation"],
         &["accumulate"],
-        &["accumulator"],
         &["accumulated"],
         &["occupied"],
         &["accepts"],
diff --git a/crates/typos/src/tokens.rs b/crates/typos/src/tokens.rs
index 426c248..20750fd 100644
--- a/crates/typos/src/tokens.rs
+++ b/crates/typos/src/tokens.rs
@@ -190,8 +190,8 @@ mod parser {
             terminated(base64_literal, sep1),
             terminated(email_literal, sep1),
             terminated(url_literal, sep1),
-            terminated(c_escape, sep1),
-            terminated(printf, sep1),
+            c_escape,
+            printf,
             sep1,
         )))(input)
     }
@@ -410,6 +410,10 @@ mod parser {
         <T as nom::InputTakeAtPosition>::Item: AsChar + Copy,
         <T as nom::InputIter>::Item: AsChar + Copy,
     {
+        // We don't know whether the string we are parsing is a literal string (no escaping) or
+        // regular string that does escaping. The escaped letter might be part of a word, or it
+        // might not be. Rather than guess and be wrong part of the time and correct people's words
+        // incorrectly, we opt for just not evaluating it at all.
         preceded(take_while1(is_escape), take_while(is_xid_continue))(input)
     }
 
@@ -1103,6 +1107,36 @@ mod test {
         assert_eq!(expected, actual);
     }
 
+    #[test]
+    fn tokenize_double_escape() {
+        let parser = TokenizerBuilder::new().build();
+
+        let input = "Hello \\n\\n World";
+        let expected: Vec<Identifier> = vec![
+            Identifier::new_unchecked("Hello", Case::None, 0),
+            Identifier::new_unchecked("World", Case::None, 11),
+        ];
+        let actual: Vec<_> = parser.parse_bytes(input.as_bytes()).collect();
+        assert_eq!(expected, actual);
+        let actual: Vec<_> = parser.parse_str(input).collect();
+        assert_eq!(expected, actual);
+    }
+
+    #[test]
+    fn tokenize_ignore_escape() {
+        let parser = TokenizerBuilder::new().build();
+
+        let input = "Hello \\nanana\\nanana World";
+        let expected: Vec<Identifier> = vec![
+            Identifier::new_unchecked("Hello", Case::None, 0),
+            Identifier::new_unchecked("World", Case::None, 21),
+        ];
+        let actual: Vec<_> = parser.parse_bytes(input.as_bytes()).collect();
+        assert_eq!(expected, actual);
+        let actual: Vec<_> = parser.parse_str(input).collect();
+        assert_eq!(expected, actual);
+    }
+
     #[test]
     fn tokenize_printf() {
         let parser = TokenizerBuilder::new().build();


Test patch:
diff --git a/tests/cmd/double-escaped.stdin b/tests/cmd/double-escaped.stdin
new file mode 100644
index 0000000..7409124
--- /dev/null
+++ b/tests/cmd/double-escaped.stdin
@@ -0,0 +1,2 @@
+\n\n
+Destory
diff --git a/tests/cmd/double-escaped.stdout b/tests/cmd/double-escaped.stdout
new file mode 100644
index 0000000..35ace03
--- /dev/null
+++ b/tests/cmd/double-escaped.stdout
@@ -0,0 +1,2 @@
+\n\n
+Destroy
diff --git a/tests/cmd/double-escaped.toml b/tests/cmd/double-escaped.toml
new file mode 100644
index 0000000..6c0caf9
--- /dev/null
+++ b/tests/cmd/double-escaped.toml
@@ -0,0 +1,3 @@
+bin.name = "typos"
+args = "--write-changes -"
+status.code = 0