Index: botsoc.scm
==================================================================
--- botsoc.scm
+++ botsoc.scm
@@ -14,11 +14,11 @@
 	("onanism")		("anthropology") ("authoritarianism")
 	("totalitarianism")	("social justice")	("identity politics")
 	("idpol")				("terrorism")		("islamism")
 	("hedonism")		("libertinism")		("computer science")
 	("transhumanism")	("posthumanism")	("humanism")
-	("humanitarianism")
+	("humanitarianism") ("racism")
 	("libertarianism");	("static typing")	("dynamic typing")
 	("neoliberalism"))
 (rule (ideology-prefix)
 	("neo-")		("social ")	("democratic ")
 	("paleo-")	("retro-")	("anarcho-")
@@ -26,11 +26,11 @@
 	("sado-")	("eroto-")	("strangulo-")
 	("theo-")	("ultra-")	("arachno-")
 	("anti")		("post-") 	("post")
 	("ethno-")	("marxism-") ("left-")
 	("alt-")	("right-") ("space ") ("gay ")
-	("quantum "))
+	("quantum ") ("racial "))
 (rule (ideology)
 	((base-ideology))
 	((adjective) " " (ideology))
 	((ideology-prefix) (base-ideology)))
 (rule (problem)
@@ -92,18 +92,20 @@
 	("declare war") ("deprive " (group) " of " (necessity)))
 
 (rule (trait)
 	("power") ("influence") ("wealth") ("solidarity")
 	("hope") ("conviction") ("autonomy") ("freedom")
-	("liberty") ("faith") ("humanity") ("sapience"))
+	("liberty") ("faith") ("humanity") ("sapience")
+	("purity") ("flesh purity") ("racial purity"))
 
 (rule (necessity)
 	("sex") ("water") ("food") ("money") 
 	("wealth") ("income") ("welfare") ("tea")
 	("therapy") ("pain relief") ("medical care")
 	("medicine") ("reproduction") ("hope") ("faith")
-	("love") ("pain") ("love") ("oxygen") ("nutrition"))
+	("love") ("pain") ("love") ("oxygen") ("nutrition")
+	("racial hygiene"))
 
 (rule (thing)
 	((problem)) ((necessity))	("Russia")	("Mars")
 	("activism")
 	((thing) " activism") ("anti-" (thing) " activism")
@@ -117,22 +119,22 @@
 	("influenza") ("alien life") ("mind control")
 	("terrorism") ("identity") ("healthcare")
 	 ("literature") ("grass") ("catnip") ("virginity")
 	("television") ("romance") ("finance") 
 	("opium") ("law") ("dating") ("online dating") ("friendship")
-	("the Resistance"))
+	("the Resistance") ("the Manosphere") ("race") ("Qanon"))
 
 (rule (things)
 	("pandas")	("lasers")	("toasters")
 	("kulaks")	("opiates") ("painkillers")
 	("teacups")	("umbrellas") ((thing) " rights")
 	((adjective) " rights") (group)
 	("humans") ("vaccines")
 	("doctors") ("drugs") ("hospitals") ("UFOs") ("aliens")
 	("flowers") ("pumpkins") ("guns") ("babies")
-	("friends") ("bitcoins")
-	)
+	("friends") ("bitcoins"))
+
 (rule (thingss)
 	((thing)) ((things)))
 	
 (rule (group)
 	("gays")		("whites")				("African-Americans")	
@@ -156,11 +158,11 @@
 	("kulaks")		("slaves")				("human trafficking victims")
 	("victims")		("crime victims")		("victims of " (problem))
 	("losers")		("thieves")				("queer people")
 	("queers")		("senators")			("presidents")
 	("queens")		("kings")				("emperors")
-	("aliens")
+	("aliens")		("racists")
 	((thing) " activists") ("anti-" (adjective) " activists")
 	((ideology) " activists") ((adjective) " activists"))
 	
 ; utility fns
 (rule (adjfor adj con g)

Index: bottist.ml
==================================================================
--- bottist.ml
+++ bottist.ml
@@ -1,24 +1,24 @@
 let adjs = [| "queer"; "electric"; "space"; "super"; "discount"; "extreme"; "far-left";
-    "far-right"; "unreconstructed"; "modern"; "eternal"; "original"; "historical"; "tankie"; "mystical"; "arcane"; "catholic"; "protestant"; "irish"; "dialectical"; "confucian"; "orbital"; "suborbital"; "martian"; "minimalist"; "moist"; "dire"; "trotskyite"; "trotskyist"; "supreme"; "objective"; "object-oriented"; "moist"; "authentic"; "nazi"; "anti-revisionist"; "revisionist"; "revolutionary"; "counter-revolutionary"; "populist"; "de-leonist"; "lexical"; "armed"; "unarmed"; "people's"; "sectarian"; "israeli"; "palestinian"; "american"; "mexican"; "russian"; "soviet"; "reformist"; "canadian"; "automatic"; "automated"; "luxury"; "deluxe"; "gay"; "full"; "islamic"; "christian"; "visionary"; "magical"; "magic"; "social"; |] 
+    "far-right"; "unreconstructed"; "modern"; "eternal"; "original"; "historical"; "tankie"; "mystical"; "arcane"; "catholic"; "protestant"; "irish"; "dialectical"; "confucian"; "orbital"; "suborbital"; "martian"; "minimalist"; "moist"; "dire"; "trotskyite"; "trotskyist"; "supreme"; "objective"; "object-oriented"; "moist"; "authentic"; "nazi"; "anti-revisionist"; "revisionist"; "revolutionary"; "counter-revolutionary"; "populist"; "de-leonist"; "lexical"; "armed"; "unarmed"; "people's"; "sectarian"; "israeli"; "palestinian"; "american"; "mexican"; "russian"; "soviet"; "reformist"; "canadian"; "automatic"; "automated"; "luxury"; "deluxe"; "gay"; "full"; "islamic"; "christian"; "visionary"; "magical"; "magic"; "social";"racist"; |] 
 let prefixes = [|"neo"; "post"; "retro"; "anti"; "counter"; "pre"; "paleo"; "femino"; "anarcho"; "oligo"; "meta"; "diabolo"; "theo"; "petro"; "sado"; "arachno"; "psycho"; "socio"; "eroto";
     "nano"; "mini"; "xeno"; "astro"; "femto"; "electro"; "endo"; "arch"; "macro"; 
     "cardio"; "mesmo"; "chrono"; "nycto"; "megalo"; "lesbo"; "masculo"; "ultra"; "urtla";
     "proto"; "weebo"; "thanato"; "volcano"; "strangulo"; "quasi"; "pseudo"; "procto";
     "copro"; "hydro"; "gastro"; "thermo"; "mystico"; "arcano"; "disastro"; "vagino"; "dino";
     "nympho"; "pharma"; "macho"; "tele"; "bio"; "cryo"; "homo"; "hetero"; "auto"; "arachno";
-    "christo"; "islamo"; "narco"|]
-let ists  = [| "plurali"; "femini"; "activi"; "sociali"; "marxi"; "lenini"; "stalini"; "fasci"; "sadi"; "stirneri"; "masochi"; "imperiali"; "arcani"; "syndicali"; "masturbati"; "pedantici"; "posadi"; "hoxhai"; "maoi"; "papi"; "catholici"; "protestanti"; "coloniali"; "francoi"; "materiali"; "immateriali"; "sexuali"; "stallmani"; "minarchi"; "totalitariani"; "authoritariani"; "revisioni"; "legali"; "supremaci"; "masculi"; "primitivi"; "brezhnevi"; "populi"; "kautskyi"; "hitleri"; "pacifi"; "zioni"; "reformi"; "canadiani"; "tribadi"; "automati"; "autonomi"; "luddi"; "libertariani"; "capitali"; "chauvini"; "anarchi"; "mystici"; "islami"; "nazi"|]
+    "christo"; "islamo"; "narco"; "levo"; "dextro";|]
+let ists  = [| "plurali"; "femini"; "activi"; "sociali"; "marxi"; "lenini"; "stalini"; "fasci"; "sadi"; "stirneri"; "masochi"; "imperiali"; "arcani"; "syndicali"; "masturbati"; "pedantici"; "posadi"; "hoxhai"; "maoi"; "papi"; "catholici"; "protestanti"; "coloniali"; "francoi"; "materiali"; "immateriali"; "sexuali"; "stallmani"; "minarchi"; "totalitariani"; "authoritariani"; "revisioni"; "legali"; "supremaci"; "masculi"; "primitivi"; "brezhnevi"; "populi"; "kautskyi"; "hitleri"; "pacifi"; "zioni"; "reformi"; "canadiani"; "tribadi"; "automati"; "autonomi"; "luddi"; "libertariani"; "capitali"; "chauvini"; "anarchi"; "mystici"; "islami"; "nazi"; "arsoni"|]
 
 let range min max = (Random.int (max-min)) + min
 let chance n = range 0 n = 0
 let pick (r: 'a array) : 'a = r.(range 0 (Array.length r));;
 
 let rec accumulate fn times = fn () ^ if times = 0 then "" else " "^(accumulate fn (times-1))
-let makeist () = (if chance 2 then (pick prefixes)^"-" else "") ^ (pick ists)^(pick [|"st"; "te"|])
+let makeist () = (if chance 2 then (pick prefixes)^"-" else "") ^ (pick ists)^(pick [|"st"; "st"; "st"; "te"|])
 let ideology () = (if chance 3 then (if chance 4 then (pick prefixes) else "") ^ (pick adjs)^" "  else "" )
         ^ (accumulate makeist (range 0 2)) ^ " "
         ^ (if chance 3 then (pick prefixes)^"-" else "") ^ (pick ists) ^ "sm"
         (* original "mock the anarchists" mode:
         ^ (if chance 2 then ((if chance 3 then pick prefixes else "") ^"anarchism") else (pick [|"anarcho-";"arachno-"|])^(pick ists)^"sm") *)
 let () = Random.self_init (); print_string (ideology ())