IsString is used in combination with the -XOverloadedStrings
language extension to convert the literals to different string types.
For example, if you use the text package, you can say
{-# LANGUAGE OverloadedStrings #-}
myText = "hello world" :: Text
Internally, the extension will convert this to the equivalent of
myText = fromString @Text ("hello world" :: String)
Note: You can use fromString in normal code as well,
but the usual performance/memory efficiency problems with String apply.
Methods
fromString :: String -> a
Instances14IsString, …
IsString BuilderDefined in bytestring-0.12.2.0 · Data.ByteString.Builder · orphanIsString ByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Internal.TypeBeware: fromString truncates multi-byte characters to octets. e.g. "枯朶に烏のとまりけり秋の暮" becomes �6k�nh~�Q��n�
IsString ByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Lazy.InternalBeware: fromString truncates multi-byte characters to octets. e.g. "枯朶に烏のとまりけり秋の暮" becomes �6k�nh~�Q��n�
IsString ShortByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Short.InternalBeware: fromString truncates multi-byte characters to octets. e.g. "枯朶に烏のとまりけり秋の暮" becomes �6k�nh~�Q��n�
IsString DocDefined in pretty-1.1.3.6 · Text.PrettyPrint.HughesPJIsString TextDefined in text-2.1.3 · Data.Text · orphanPerforms replacement on invalid scalar values:
Example2 expressions :set -XOverloadedStrings"\55555" :: Text"\65533"
IsString BuilderDefined in text-2.1.3 · Data.Text.Internal.BuilderPerforms replacement on invalid scalar values:
Example2 expressions :set -XOverloadedStrings"\55555" :: Builder"\65533"
IsString TextDefined in text-2.1.3 · Data.Text.Lazy · orphanPerforms replacement on invalid scalar values:
Example2 expressions :set -XOverloadedStrings"\55555" :: Data.Text.Lazy.Text"\65533"
IsString (Doc a)Defined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJIsString a => IsString (Identity a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.String(IsString a, Hashable a) => IsString (Hashed a)Defined in hashable-1.5.1.0 · Data.Hashable.Classa ~ Char => IsString (Seq a)Defined in containers-0.8 · Data.Sequence.Internala ~ Char => IsString [a]Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.String(a ~ Char)context was introduced in4.9.0.0IsString a => IsString (Const a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.String