Вы работаете со списком списков, поэтому в этом шаблоне:
| hd :: tl -> ...
заголовок hd
является списком.
Однако, hd
может быть пустымсписок.Ваш код не обрабатывает этот случай должным образом.Вам просто нужно решить, что вы хотите сделать.
У вас может быть дополнительный шаблон, подобный этому:
| [] :: tl ->
этот шаблон будет соответствовать рассматриваемому случаю.