, fact , :
fact n | ... = n * ...
IOW, , n:
fact 3 ≡ n * (n-1) * (n-2) * 1
, , ,
(*) :: Num n => n -> n -> n
fib: -. IOW,
fib 3 ≡ (1 + 1) + 1
n , .
, n, , , , .
, fib : (Eq a, Num a, Num t) => a -> t , (Eq t, Num t) => t -> t. , fact, , :
fact' :: (Eq a, Integral a, Num t) => a -> t
fact' = fromIntegral . fact
, Integer - , fact, Integer. , -, :
fact'' :: (Eq t, Integral a, Num t) => a -> t
fact'' = fact . fromIntegral
Int -> Integer, .
(Eq t, Num t) => t -> t, , . , , fact - , ; , , - , .