static L ai_speculate_functions = ll( f ai_spec_webIsTriple, f ai_spec_parseIf, f ai_spec_parseAnd, f ai_spec_tripelize, f ai_spec_parseArrowTriple, f ai_spec_webContents, f ai_spec_addQuestionsToChatLine, f ai_spec_addQuestionsToAdjective, f ai_spec_containsThePhrase, f ai_spec_parseIf, f ai_spec_possiblyIs, f ai_spec_isAQuestion, f ai_spec_substWebs, f ai_spec_apostrophS, f ai_spec_allWords, f ai_spec_numbered, f ai_spec_howMany, f ai_spec_doYouThink, f ai_spec_unquote, f ai_spec_checkFact, f ai_spec_switcheroo, f ai_spec_groupingPrefix, f ai_spec_moveToMiddle, f ai_spec_compareNumbers, f ai_spec_compareNumbers_triple, f ai_spec_answerYesNoTriple, f ai_spec_moveToMiddle_triple, f ai_spec_searchForAnswer ); static S ai_speculate(fS word) { if (empty(word)) ret word; ai_withMaker('ai_speculate, r { ai_blob(word, false); if (isAdjective(word)) ai_postTriple(word, "is", "an adjective"); for (S f : ai_speculate_functions) ai_callSpeculationFunction(f, word); }); ret word; }