A command is a particular rule for reacting to what is said on IRC. Typically, a command takes a Core.t (to be able to answer and perform IRC actions) and an input message, and it decides whether to do something or not based on the message.
The command returns a res, which specifies whether it successfully "caught" the message (no need then for other commands to run), if it didn't react ("skip") so we can try the other commands, or whether it failed when trying to answer.
A command, bundling some metadata (name + descr, used for "!help"), a priority (used to run some commands before the others), and the answering function itself
make_simple ~cmd f matches messages of the form "!cmd xxx", and call f msg "xxx". The function returns 0 or 1 line to reply to sender. The function can raise Fail to indicate failure