module Naive ( textToInteger, byteStringToInteger, stringToInteger, ) where import Data.Char (ord) import qualified Data.ByteString as BS import qualified Data.List as L import qualified Data.Text as T textToInteger :: T.Text -> Integer textToInteger = T.foldl' (\acc c -> acc * 10 + toInteger (ord c - 48)) 0 byteStringToInteger :: BS.ByteString -> Integer byteStringToInteger = BS.foldl' (\acc c -> acc * 10 + toInteger c - 48) 0 stringToInteger :: String -> Integer stringToInteger = L.foldl' (\acc c -> acc * 10 + toInteger (ord c - 48)) 0