Skip to content

Commit

Permalink
Be abstract of the implementation of Integer.
Browse files Browse the repository at this point in the history
The constructors of `Integer` and the module they are exported from all
changed between GHC 8 and 9.
  • Loading branch information
kindaro committed Apr 13, 2024
1 parent 6d10c51 commit b425505
Showing 1 changed file with 6 additions and 6 deletions.
12 changes: 6 additions & 6 deletions src/Data/Text.hs
Original file line number Diff line number Diff line change
Expand Up @@ -261,8 +261,7 @@ import Data.Word (Word8)
import Foreign.C.Types
import GHC.Base (eqInt, neInt, gtInt, geInt, ltInt, leInt)
import qualified GHC.Exts as Exts
import GHC.Int (Int8, Int (I#))
import GHC.Num.Integer (Integer(IS, IP, IN))
import GHC.Int (Int8)
import GHC.Stack (HasCallStack)
import qualified Language.Haskell.TH.Lib as TH
import qualified Language.Haskell.TH.Syntax as TH
Expand Down Expand Up @@ -365,10 +364,11 @@ instance Semigroup Text where

-- | Beware: this function will evaluate to error if the given number does
-- not fit into an @Int@.
stimes howManyTimes = case P.toInteger howManyTimes of
IS howManyTimesInt# -> replicate (I# howManyTimesInt#)
IP _ -> P.error "`Data.Text.stimes`: given number does not fit into an `Int`!"
IN _ -> P.const empty
stimes howManyTimes =
let howManyTimesInt = P.fromIntegral howManyTimes :: Int
in if P.fromIntegral howManyTimesInt == howManyTimes
then replicate howManyTimesInt
else P.error "`Data.Text.stimes`: given number does not fit into an `Int`!"

sconcat = concat . NonEmptyList.toList

Expand Down

0 comments on commit b425505

Please sign in to comment.