Вы можете сделать квазиквотер.Возможно, вы даже захотите загрузить его в Hackage:
module X where
import Language.Haskell.TH
import Language.Haskell.TH.Quote
import Data.Char
iQQ :: QuasiQuoter
iQQ = QuasiQuoter {
quoteExp = return . LitE . IntegerL . read . filter isDigit,
quotePat = \_ -> fail "illegal integer QuasiQuote \
\(allowed as expression only, used as a pattern)",
quoteType = \_ -> fail "illegal integer QuasiQuote \
\(allowed as expression only, used as a type)",
quoteDec = \_ -> fail "illegal integer QuasiQuote \
\(allowed as expression only, used as a declaration)"
}
И использовать:
{-# LANGUAGE QuasiQuotes #-}
import X
value = [iQQ|123
456|]
В результате:
Ok, two modules loaded.
*Main> value
123456
Или большее число:
value = [iQQ|
44444444444444444444444444444444444444444444444444444444444444444444444444444444
45555555555555555555555555555555555555555555555555555555555555555555555555555555
66666666666666666666666666666666666666666666666666666666666666666666666666666666
|]
А в GHCi:
Ok, two modules loaded.
*Main> value
444444444444444444444444444444444444444444444444444444444444444444444444444444444555555555555555555555555555555555555555555555555555555555555555555555555555555566666666666666666666666666666666666666666666666666666666666666666666666666666666