Неясен вопрос о том, что на самом деле должны делать функции.
Однако, чтобы правильно ориентировать вас, вы можете взглянуть на примечания типа .Они позволяют добавлять явные типы к параметрам функции.
Например, может выглядеть так:
let my_function (a : string option list) (b : int) : string * string list = ("", []);;
Я просто не понимаю, как такое упражнение может быть полезным.