Ваш код состоит из двух определений функции с именем range
разных типов. Это допустимый код OCaml (второе определение скрывает первое), но вряд ли это будет тем, что предназначено.
Я предполагаю, что в строке assert
есть опечатка.
В любом случае любой код, который вы вводите после этого, будет использовать второе определение range
, которое действительно имеет тип unit -> unit
.