fac :: Int -> Int
fac n 
  | n `elem` [0,1] = 1
  | n > 1          = n * fac (n - 1)
  | otherwise      = error "negative factorial"
fac :: Int -> Int
fac n 
  | n `elem` [0,1] = 1
  | n > 1          = n * fac (n - 1)
  | otherwise      = error "negative factorial"
fac n 
  | n `elem` [0,1] = 1
  | n > 1          = n * fac (n - 1)
  | otherwise      = error "negative factorial"