Îõ³h$§e    Safe-InferredKhex-text Lazy texthex-text Strict texthex-textLazy byte stringhex-textStrict byte stringhex-text‘Encodes a byte string as hexidecimal number represented in text. Each byte of the input is converted into two characters in the resulting text.&(encodeHex . ByteString.singleton) 192"c0"&(encodeHex . ByteString.singleton) 168"a8".(encodeHex . ByteString.pack) [192, 168, 1, 2] "c0a80102" produced by  encodeHex can be converted back to a  using .The lazy variant of  encodeHex is .hex-textþDecodes hexidecimal text as a byte string. If the text contains an even number of characters and consists only of the digits 0 through 9 and letters a through f, then the result is a   value.²Unpacking the ByteString in the following examples allows for prettier printing in the REPL. >>> (fmap ByteString.unpack . decodeHex . Text.pack) "c0a80102" Just [192,168,1,2]ÏIf the text contains an odd number of characters, decoding fails and produces  .:(fmap ByteString.unpack . decodeHex . Text.pack) "c0a8010"NothingÎIf the text contains non-hexidecimal characters, decoding fails and produces  .;(fmap ByteString.unpack . decodeHex . Text.pack) "x0a80102"NothingüThe letters may be in either upper or lower case. This next example therefore gives the same result as the first one above:;(fmap ByteString.unpack . decodeHex . Text.pack) "C0A80102"Just [192,168,1,2]hex-textlazilyEncodeHex is the lazy variant of .ÉWith laziness, it is possible to encode byte strings of infinite length:Ë(LazyText.take 8 . lazilyEncodeHex . LazyByteString.pack . cycle) [1, 2, 3] "01020301"        'hex-text-0.1.0.4-EzTC3IjJCG1IsWsZkXiJrYText.HexLazyTextTextLazyByteString ByteString encodeHex decodeHexlazilyEncodeHexlazyText strictTextlazyByteStringstrictByteStringbase GHC.MaybeJustNothing