module Ptr.List where

import Ptr.Prelude

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