VD>def Fact(x : int) : int VD>{ | 0 VD> | 1 => 1 VD> | x when x > 0 => x * Fact(x - 1) VD> | _ => throw ArgumentException("x") VD>}