-- ===================================
-- Ex. 1
-- ===================================

toDigitsRev :: Integer -> [Integer]
toDigitsRev n 
    | n >= 0 && n < 10  = [n]
    | n >= 10           = (n `mod` 10) : toDigitsRev (n `div` 10)
    | otherwise         = error "n >= 0"
toDigitsRev :: Integer -> [Integer]
toDigitsRev n 
    | n >= 0 && n < 10  = [n]
    | n >= 10           = (n `mod` 10) : toDigitsRev (n `div` 10)
    | otherwise         = error "n >= 0"
toDigitsRev n 
    | n >= 0 && n < 10  = [n]
    | n >= 10           = (n `mod` 10) : toDigitsRev (n `div` 10)
    | otherwise         = error "n >= 0"