exception NegativeValue ;; open Num ;; let rec recursive = function Int 0 -> Int 1 | n when n >/ Int 0 -> n */ recursive ( n -/ Int 1) | _ -> raise NegativeValue ;; let rec tailRecursive = function | n when n raise NegativeValue | n when n Int 1 | n -> let rec iterate i t = if ( i