-- > fix :: ((Int -> Int) -> (Int -> Int)) -> (Int -> Int)
--
-- Then our factorial function becomes:
--
fac :: Int -> Int
fac = fix faco

-- What just happened?
--
-- > fix faco 5
-- > = { def. 'fix' }
-- > faco (fix faco) 5
-- > = { def. 'faco'}