module Ptr.List where

import Ptr.Prelude

{-# INLINE reverseDigits #-}
reverseDigits ::
  (Integral a) =>
  -- | Radix
  a ->
  -- | Number
  a ->
  [a]
reverseDigits :: forall a. Integral a => a -> a -> [a]
reverseDigits a
radix =
  let loop :: a -> [a]
loop a
x = case forall a. Integral a => a -> a -> (a, a)
divMod a
x a
radix of
        (a
next, a
digit) -> a
digit forall a. a -> [a] -> [a]
: if a
next forall a. Ord a => a -> a -> Bool
<= a
0 then [] else a -> [a]
loop a
next
   in a -> [a]
loop