yloFactorial :: Integer -> Integer
hyloFactorial = hyloList (1 `maybe` uncurry (*)) coalg
    where
        coalg 0 = Nothing
        coalg n = Just (n, pred n)

hyloFactorial :: Integer -> Integer
hyloFactorial = hyloList (1 `maybe` uncurry (*)) coalg
    where
        coalg 0 = Nothing
        coalg n = Just (n, pred n)
hyloFactorial = hyloList (1 `maybe` uncurry (*)) coalg
    where
        coalg 0 = Nothing
        coalg n = Just (n, pred n)