; (include "lib/lisp-macro.scm")
(include "lib/bot-gambit.scm")

(rule (base-ideology)
	("liberalism")		("socialism")		("capitalism")
	("anarchism")		("marxism")		("marxism-leninism")
	("nazism")			("feminism")		("stalinism")
	("democracy")		("stirnerism")		("harm reduction")
	("egoism")			("objectivism")	("monarchism")
	("tribadism")		("eugenics")		("fascism")
	("juche")			("nationalism")	("human extinctionism")
	("demonology")	("linguistics")		("voluntary human extinction")
	("onanism")		("anthropology") ("authoritarianism")
	("totalitarianism")	("social justice")	("identity politics")
	("idpol")				("terrorism")		("islamism")
	("hedonism")		("libertinism")		("computer science")
	("libertarianism");	("static typing")	("dynamic typing")
	("neoliberalism"))
(rule (ideology-prefix)
	("neo-")		("social ")	("democratic ")
	("paleo-")	("retro-")	("anarcho-")
	("femino-")	("neo")		("anti-")
	("sado-")	("eroto-")	("strangulo-")
	("theo-")	("ultra-")	("arachno-")
	("anti")		("post-") 	("post")
	("ethno-")	("marxism-") ("left-")
	("alt-")	("right-") ("space ") ("gay ")
	("quantum "))
(rule (ideology)
	((base-ideology))
	((adjective) " " (ideology))
	((ideology-prefix) (base-ideology)))
(rule (problem)
	("poverty")		("hunger")			("hatred")
	("racism")		("mortality")		("misogyny")
	("drug use")	("alcoholism")		("homophobia")
	("addiction")	("exploitation")	("drug prohibition")
	("nazism")		("class conflict")	("harm reduction")
	("biphobia")	("lesbianism")		("the opioid crisis")
	("Russia")		("masturbation")	("nuclear war")
	("oppression")	("immigration")	("totalitarianism")
	("depression")	("mental illness")	("war") ("vore")
	("disease") 		("the bourgeoisie")
	("crime")		("activism")			("Noam Chomsky")
	("wealth")		("eugenics")		("bigotry")
	("genocide")	("bitcoin")			("ethnic cleansing")
	("vaccination")	("autism")			("the alt-right")
	("authoritarianism") ("freedom of speech")
	("tooth decay")	("neurodivergence")
	("abortion")	("healthcare")	("the war")
	("islamophobia") ("sexting") ; ("static typing") ("dynamic typing") 
	("heterophobia") ("heterosexuality"))
(rule (adjective)
	("racist")		("homophobic")		("misogynist")
	("bigoted")		("anti-" (thing))	("evil")
	("insane")		("impossible")		("contradictory")
	("illogical")	("revolutionary")	("self-contradictory")
	("white")		("communist")		("socialist")
	("marxist")		("stalinist")		("lesbian")
	("untested")	("neurotypical")	("anarchist")
	("religious")	("bourgeois")		("proletarian")
	("classist")	("monarchist")		("fascist")
	("postfurry")	("eugenicist")		("alt-right")
	("furry")		("problematic")		("totalitarian")
	("unlikely")	("compromised")		("authoritarian")
	("useless")		("useful")			("neurodivergent")
	("desirable")	("undesirable")		("dialectic")
	("undialectical")("undefined")		("imperialist")
	("good")		("bad")				("colonialist")
	("acausal")		("black")			;("statically-typed")
	("emergent")	("libertarian")		("unreconstructed")
	("teenage")		("Lacanian")		("intersectional")
	("horny")		("thirsty"))

(rule (trait)
	("power") ("influence") ("wealth") ("solidarity")
	("hope") ("conviction") ("autonomy") ("freedom")
	("liberty") ("faith") ("humanity") ("sapience"))

(rule (necessity)
	("sex") ("water") ("food") ("money") 
	("wealth") ("income") ("welfare") ("tea")
	("therapy") ("pain relief") ("medical care")
	("medicine") ("reproduction") ("hope") ("faith")
	("love"))

(rule (thing)
	((problem)) ((necessity))	("Russia")	("Mars")
	("activism")
	((thing) " activism") ("anti-" (thing) " activism")
	((adjective) " activism") ("bitcoin") ("humanity")
	("vaccination") ("autism") ("medical care")
	((adjective) " power") ((adjective) " policy")
	((adjective) " politics")
	("transit") ("public transit") ("public transportation")
	("meth") ("heroin") ("dialectics") ("the dialectic")
	("the Discourse") ("medical care") ("psychiatry")
	("influenza") ("alien life") ("mind control")
	("terrorism") ("identity") ("healthcare")
	 ("literature") ("grass") ("catnip")
	("television") ("romance") ("finance") 
	("opium") ("law") ("dating") ("online dating") ("friendship"))

(rule (things)
	("pandas")	("lasers")	("toasters")
	("kulaks")	("opiates") ("painkillers")
	("teacups")	("umbrellas") ((thing) " rights")
	((adjective) " rights")
	((thing) " activists") ("anti-" (adjective) " activists")
	((ideology) " activists") ((adjective) " activists")
	("humans") ("vaccines")
	("doctors") ("drugs") ("hospitals") ("UFOs") ("aliens")
	("flowers") ("pumpkins") ("guns") ("babies")
	("friends")
	)
(rule (thingss)
	((thing)) ((things)))
	
(rule (group)
	("gays")			("whites")			("African-Americans")	
	("the poor")	("the rich")			("Jewish people")
	("natives")		("otherkin")		("psychics")
	("furries")		("immigrants")	("trans people")
	("men")			("women")			("the bourgeoisie")
	("boys")			("girls")				("the proletariat")
	("activists")		("stirnerites")		("proletarians")
	("extremists")	((thing) " extremists") ((thing) " activists")
	("addicts")		("junkies")			("tweakers")
	("potheads")	("acid heads")		("meth addicts")
	("doctors")		("gamers")			("marijuana users")
	("dentists")		("fascists")			("marijuana addicts")
	("nazis")			("wizards")			("heroin addicts")
	("hackers")		("LSD addicts")	("disabled people")
	("criminals")	("teenagers")		("the differently-abled")
	("teens")		("cissexuals") ("the working class"))
	
; utility fns
(rule (adjfor adj con g)
	(adj)
	(adj con g))
(rule (modal)
	("will") ("could") ("might") ("will likely") ("can")
	("surely will")	("undoubtedly will") ("may"))
	
(rule (modal-not)
	("will not") ("could not") ("might not") ("will likely not") ("cannot")
	("surely will not")	("undoubtedly will not") ("may not"))

(rule (modal-rnd) ((modal)) ((modal-not)))

(rule (cause-provoke)
	("cause")		("lead to")	("provoke the development of")	
	("provoke")	("promote")	("create"))
(rule (causes-provokes)
	("causes")		("leads to")	("provokes the development of")		
	("provokes")	("promotes")	("creates"))
	
(rule (cause g i)
	(g " " (modal))
	((thing) " " (modal) " cause " g " to")
	(i " " (modal) " cause " g " to"))

; rule definitions
(rule (predicate-or-claim i)
		(i " is actually " (ideology))
		(i " is actually just " (ideology) " with " (adjective) " characteristics")
		(i " is just " (ideology) " with " (adjective) " characteristics")
		(i " is the highest form of " (ideology))
		(i " is not " (ideology))
		(i " disproves " (ideology))
		(i " is disproven by " (ideology))
		(i " is a fundamentally " (adjective) " ideology")

		(i " is " (adjective))
		(i " is basically " (adjective))
		(i " is essentially " (adjective))
		(i " is unavoidably " (adjective))
		(i " is fundamentally " (ideology))
		
		(i " is bad for " (group))
		(i " is good for " (group))
		
		(i " seeks to eradicate " (group))
		(i " seeks to eradicate " (problem))

		(i " is the source of " (problem))
		(i " is the cause of " (problem))
		(i " is the the reason for " (problem))
		(i " is the the reason " (group) " suffer from " (problem))

		(i " excludes " (group))
		((cause (group) i) " be excluded from " (thing))
		(i " dehumanizes " (group))
		(i " alienates " (group))
		(i " marginalizes " (group))
		
		(i " pathologizes " (problem))
		(i " pathologizes " (thingss))
		(i " " (modal) " deny " (group) " access to " (thingss))
	
		((group) " are " (adjective))
		((group) " are not " (adjective))
		
		((thing) " " (causes-provokes) " " (thingss))
		((things) " " (cause-provoke) " " (thingss))
		((thingss) " " (modal) " cause " (problem))
		(i " " (causes-provokes) " " (problem))
		(i " " (modal) " cause " (problem))
		
		(i " lacks class character")
		((group) " have class character")
		((group) " lack class character")
		((thing) " has class character")
		((things) " have class character")
		((thing) " lacks class character")
		((things) " lack class character")
		
	
		((problem) " " (modal-rnd) " be solved in our lifetimes")
		
		(i " fails to address " (problem))
		(i " does not address " (problem))
		(i " disregards " (problem))
		(i " is not a solution for " (problem))
		(i " does not solve " (problem))
		(i " cannot solve " (problem))
		("basically, " (predicate-or-claim ii))
			
	)
(rule (predicate i)
	(i " was developed after " (ideology))
	(i " was developed before " (ideology))
	(i " was developed before " (problem) " was recognized")
	(i " was developed before " (problem) " was recognized as a problem")
	(i " was developed before the issue of " (problem) " came into focus")
	(i " developed before general awareness of " (problem))
	(i " was built on " (ideology))
	(i " was inspired by " (ideology))
	(i " was influenced by " (ideology))
	(i " is an ideological descendent of " (ideology))
	(i " is an ideological descendent of " (ideology) " and " (ideology))
	(i (one-of
		 " was developed by " " was designed by "
		 " is in the class interests of "
		 " only addresses the needs of "
		 " was developed to address the needs of "
		 " centers " " uplifts " " only liberates "
		 " centers the needs of " " only cares about "
		 " centers the struggles of "
		 " centers the struggle of ")
	   (group) (one-of "" (string-append ", not " (group))))
			 
	(i (one-of
		 " disregards "
		 " disregards the needs of "
		 " cannot address the struggles of "
		 " does not liberate " " disrespects "
		 " disrespects the identity of "
		 " disrespects the culture of "
		 " disrespects the history of "
		 " lacks consideration for "
		 " does not center " " fails to center "
		 " does not center the needs of"
		 " fails to center the needs of ")
	   (group))
	("the main contradiction of " i " is " (problem))
	
	((group) " believe that " (pc claim i))
	((group) " have an inherent right to "
			 (one-of "be a part of " " ")
			 (one-of (thing) (problem))))
	
(rule (claim i)
	((problem) " " (modal) " inevitably arise")
	((problem) " " (modal) " still exist")
	((problem) " " (modal) " " (cause-provoke) " " (problem))
	((problem) " " (modal) " " (cause-provoke) " the defeat of " i)
	((problem) " cannot be distinguished from " i)
	(i " and " (ideology) " cannot be distinguished")
	(i " and " (ideology) " will produce the same result")

	((group) " " (modal) " be exploited")
	((group) " " (modal) " still be exploited")
	((group) " " (modal) " be exploited under " i)
	((group) " " (modal) " still be exploited under " i)
	((group) " " (modal) " face " (problem))
	
	(i " " (modal) " kill " (group))
	
	((thing) " is " (adjfor (adjective) " for " (group)))
	((things) " are " (adjfor (adjective) " for " (group)))
	((thing) " is actually " (adjfor (adjective) " for " (group)))
	((things) " are actually " (adjfor (adjective) " for " (group)))
	
	((problem) " " (modal) " benefit " (group))
	((problem) " " (modal) " harm " (group))
	((problem) " " (modal) " destroy " (group))
	((problem) " " (modal) " incite " (group) " against " (group))
	((problem) " " (modal) " incite " (group) " against " (problem))
	((problem) " is unfair to " (group))
	
	((problem) " is likely to result")
	((thing) " is likely to result")
	((things) " are likely to result")
	((thing) " is likely to be involved")
	((things) " are likely to involved")

	((problem) " is to blame")
	((thing) " is to blame")
	((things) " are to blame")
	
	((thing) " is harmful to " (group))
	((things) " are harmful to " (group))
	((thingss) " " (modal) " " (cause-provoke) " the oppression of " (group))
	((cause (group) i) " face " (problem))
	((cause (group) i) " suffer " (problem))
	((cause (group) i) " suffer from " (problem))
	((cause (group) i) " experience " (problem))
	((cause (group) i) " no longer experience " (problem))
	
	((cause (group) i) " suffer")
	((cause (group) i) " be marginalized")
	((cause (group) i) " become marginalized")
	((cause (group) i) " become exploited")
	((cause (group) i) " become addicted to " (thingss))
	((cause (group) i) " lose their " (trait))
	((cause (group) i) " lose their " (things))
	((cause (group) i) " " (one-of
		"no longer have "
		"no longer be able to get " 
		"no longer be able to get access to " 
		"no longer be able to have "
		"not have "
		) (necessity) 
		(one-of " in their lives" " anymore" " in their lives anymore" ""))
	((cause (group) i) " lose access to " (necessity))
	)

(rule (pc p i) ((p i)) ((predicate-or-claim (one-of "it" i))))
(rule (statement i)
	((pc predicate i))
	((pc claim i))
	("i think " (pc claim i))
	("it is my considered opinion that " (pc claim i))
	("i think we all know that " (pc claim i))
	("nobody would deny that " (pc claim i))
	((pc predicate i) ", therefore " (pc claim i))
	((pc claim i) " because " (predicate i))
	("if " (pc predicate i) ", " (pc claim i))
	("if " (pc predicate i) ", then " (pc claim i))
	("because " (pc predicate i) ", " (pc claim i))
	("since " (pc predicate i) ", " (pc claim i))
	("as a result of " (problem) ", " (pc claim i))
	("due to " (problem) ", " (pc claim i))
	("despite what " (group) " think, " (pc claim i))
	("despite what " (group) " think about " (problem) ", " (pc claim i))
	("while " (group) " think " (pc claim i) ", the reality is that " (pc claim i))
	)

(rule (punct)
	  (".")		("…")		(" —")		(",")
	  (",")		("...")		(" -")		(" --")
	  ("?")		("!")		("!?")		(";"))

(rule (end-punct)
	  (".")		("…")		("...")		("!")
	  ("?")		("!")		("!!"))

(rule (atheists)
	  ("atheists") ("athiests"))

(rule (checkmate-atheists i)
	  (i (punct) " checkmate, " (atheists) (end-punct))
	  (i (punct) " checkmate " (atheists) (end-punct))
	  (i (punct) " checkmate" (punct) " " (atheists) (end-punct))
	  (i (punct) " #checkmate" (atheists))
	  (i (punct) " #CheckmateAtheists")
	  (i (punct) " #CheckmateAthiests"))

(define (checkmate-athiests i)
	(if (eqv? (random-integer 9) 0)
		(checkmate-atheists i) ; else
		i))

(print (checkmate-athiests (statement (ideology))) "\n")
