shithub: MicroHs

Download patch

ref: 41034a4ed8653dc474627a0d668eaedff54bb251
parent: b9daf68bd8c951e69d2a317c1440594793686133
author: konsumlamm <konsumlamm@gmail.com>
date: Wed Jan 8 18:39:06 EST 2025

Integer: use `dropWhileEnd` for removing trailing 0s

--- a/lib/Data/Integer.hs
+++ b/lib/Data/Integer.hs
@@ -112,7 +112,8 @@
 -- Trim off 0s and make an Integer
 sI :: Sign -> [Digit] -> Integer
 sI s ds =
-  case trim0 ds of
+  -- Remove trailing 0s
+  case dropWhileEnd (== (0 :: Word)) ds of
     []  -> I Plus []
     ds' -> I s    ds'
 
@@ -166,10 +167,6 @@
 subW b x y =
   let d = maxD + x - y - b
   in (1 - quotMaxD d, remMaxD d)
-
--- Remove trailing 0s
-trim0 :: [Digit] -> [Digit]
-trim0 = reverse . dropWhile (== (0 :: Word)) . reverse
 
 -- Is axs < ays?
 ltW :: [Digit] -> [Digit] -> Bool
--