Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
Text encoding combinators specific to Text
@since 0.2.2.0
Synopsis
- pack :: (UnSnoc xs ~ (,) ys y, Superset "r-UNICODE.D76" y, encs ~ RemoveRs ys, AllEncodeInto "r-UNICODE.D76" encs) => Enc xs c String -> Enc xs c Text
- unpack :: (UnSnoc xs ~ (,) ys y, Superset "r-UNICODE.D76" y, encs ~ RemoveRs ys, AllEncodeInto "r-UNICODE.D76" encs) => Enc xs c Text -> Enc xs c String
- utf8Promote :: Enc xs c Text -> Enc (Snoc xs "r-UTF8") c Text
- utf8Demote :: UnSnoc xs ~ (,) ys "r-UTF8" => Enc xs c Text -> Enc ys c Text
- d76Promote :: Enc xs c Text -> Enc (Snoc xs "r-UNICODE.D76") c Text
- d76Demote :: UnSnoc xs ~ (,) ys "r-UNICODE.D76" => Enc xs c Text -> Enc ys c Text
Documentation
>>>
:set -XDataKinds -XTypeFamilies -XTypeApplications
pack :: (UnSnoc xs ~ (,) ys y, Superset "r-UNICODE.D76" y, encs ~ RemoveRs ys, AllEncodeInto "r-UNICODE.D76" encs) => Enc xs c String -> Enc xs c Text Source #
This assumes that each of the encodings in xs
work work equivalently in String
and Text
.
See discussion in Examples.TypedEncoding.Conversions and
"Data.TypedEncoding.Conv.ByteString.Char8.pack"
unpack :: (UnSnoc xs ~ (,) ys y, Superset "r-UNICODE.D76" y, encs ~ RemoveRs ys, AllEncodeInto "r-UNICODE.D76" encs) => Enc xs c Text -> Enc xs c String Source #
This assumes that each of the encodings in xs
work work equivalently in String
and Text
.
This is similar to the assumptions made in pack
.
utf8Promote :: Enc xs c Text -> Enc (Snoc xs "r-UTF8") c Text Source #
Text is automatically "r-UTF8"
encoded
Adding "r-UTF8"
annotation simply adds type level interpretion requirement that Text
is treated
as UTF8. The internals of Text
(currently UTF-16) are not relevant and utf8Promote
is implemented
as id
. This is not the same as encoding Word8
layouts into Char
-s.
This, in typed-encoding terminology, would be "enc-UTF8"
, not @"r-UTF8".
>>>
displ $ utf8Promote $ toEncoding () ("text" :: T.Text)
"Enc '[r-UTF8] () (Text text)"