fac n = case (==#) n 0 of { 1 -> 1 ; 0 -> (*#) n (fac ((-#) n 1)) }; main = fac 3;