let rec fact = function
  | n -> fact2 n 1
and fact2 n m =
  match n with
    0 -> m
  | n -> fact2 (n - 1) (m * n) ;;

print_int (fact 5) ;;
