В документации Data.Text
для всех примеров включено расширение OverloadedStrings
.Это добавит для всех строковых литералов неявный вызов функции fromString
.
Например:
$ ghci <b>-XOverloadedStrings</b>
GHCi, version 8.0.2: http://www.haskell.org/ghc/ :? for help
Loaded GHCi configuration from /home/kommusoft/.ghc/ghci.conf
Prelude> import Data.Text
Prelude Data.Text> replace "oo" "foo" "oo"
"foo"
или вы можете добавить это как прагму в свой файл на Haskell:
{-# LANGUAGE <b>OverloadedStrings</b> #-}
import Data.Text
foo = replace "oo" "foo" "oo"
Используя OverloadedString
s, вы можете создать свой собственный тип, который работает со строковыми литералами .Например, вы можете сделать тип:
import Data.String
newtype SpecialString = SpecialString String
instance <b>IsString SpecialString</b> where
fromString = SpecialString
Теперь вы можете использовать строковый литерал, и они могут, в зависимости от контекста, быть преобразованы в SpecialString
.