Normally, Stampy sends messages to channels using the Response object. Passing a string to the why argument gives us a way to ask Stampy for why he gave particular responses
return Response(
confidence=Conf,
text=self.dereference(text.partition(" ")[2], who) + "!",
why=f"{who} told me to say it!",
)

However, sometimes Stampy sends a message to a channel as a string via await channel.send syntax. This allows Stampy send a message to an arbitrary channel, rather than just "in Response" to a message that somebody else posted to the channel. However, in this case there is no why because there is no Response.
await channel.send(make_post_question_message(question))

Giving "reasons why" is served by the Why module.
Maybe it would be possible to use Response with await channel.send but IDK. One alternative I see is just to make Stampy remember all the awaited messages he sends, e.g., by saving them to some new dictionary in Utilities that maps message IDs to their "why's". In this case, we would probably want to have a new method for doing await channel.send, which automatically saves the messages to that dictionary. The Why module would then need to be extended to make use of that dictionary.
Normally, Stampy sends messages to channels using the
Responseobject. Passing a string to thewhyargument gives us a way to ask Stampy for why he gave particular responsesHowever, sometimes Stampy sends a message to a channel as a string via
await channel.sendsyntax. This allows Stampy send a message to an arbitrary channel, rather than just "inResponse" to a message that somebody else posted to the channel. However, in this case there is nowhybecause there is noResponse.Giving "reasons why" is served by the
Whymodule.Maybe it would be possible to use
Responsewithawait channel.sendbut IDK. One alternative I see is just to make Stampy remember all the awaited messages he sends, e.g., by saving them to some new dictionary inUtilitiesthat maps message IDs to their "why's". In this case, we would probably want to have a new method for doingawait channel.send, which automatically saves the messages to that dictionary. TheWhymodule would then need to be extended to make use of that dictionary.