--- * choices: the list of choices from which to generate the menu
--- * name: the displayed name of the menu (in the form "name: choices")
--- * selected_cb: the callback to execute for each selected choice. Takes
--- the choice as a string argument. The function
--- menu_iterator.naughty_destroy_callback will handle nil
--- callbacks. It is then fine to pass nil callbacks.
--- * rejected_cb: the callback to execute for each rejected choice (in the
--- set of possible choices, but not selected). Takes the
--- choice as a string argument. The function
--- menu_iterator.naughty_destroy_callback will handle nil
--- callbacks. It is then fine to pass nil callbacks.
--- * extra_choices: an array of pairs { choice_text, cb } for extra choices to
--- be added to the menu. The function
--- menu_iterator.naughty_destroy_callback will handle nil
--- callbacks. It is then fine to pass nil callbacks.
--- * combination: the combination of choice to generate. Possible choices
--- are "powerset" and "single" (the default).
+-- * choices: Array of choices (string) on which the menu will be
+-- generated.
+-- * name: Displayed name of the menu (in the form "name: choices").
+-- * selected_cb: Callback to execute for each selected choice. Takes
+-- the choice as a string argument. Can be `nil` (no action
+-- to execute).
+-- * rejected_cb: Callback to execute for each rejected choice (possible
+-- choices which are not selected). Takes the choice as a
+-- string argument. Can be `nil` (no action to execute).
+-- * extra_choices: An array of extra { choice_str, callback_fun } pairs to be
+-- added to the menu. Each callback_fun can be `nil`.
+-- * combination: The combination of choices to generate. Possible values:
+-- "powerset" and "single" (default).
+-- Output:
+-- * m: menu to be iterated over.