úÎ0‘.      Safe  !"#$%&'(#$%&'(  !"#$%&'(Safe,DR9Class of types which can be assigned a type-level length.XData family which wraps values of the underlying type giving them a type-level length. Sext 6 t means a value of type t of length 6.Basic element type. For  Sextable [a] , this is a.9Simply wrap a value in a Sext as is, assuming any length.For example, an expression like +unsafeCreate "somestring" :: Sext 50 String¡will typecheck, although the stored length information will not match actual string size. This may result in wrong behaviour of all functions defined for Sext.,Use it only when you know what you're doing.XWhen implementing new Sextable instances, code this to simply apply the constructor of .9Forget type-level length, obtaining the underlying value. )*+, - .       ,) -* .+NoneI/:A type with IsString instance to allow string literals in  argument without quoting.5Type-safe Sext constructor macro for string literals.Example: $(sext "Foobar") compiles to GunsafeCreate "Foobar" :: forall a. (IsString a, Sextable a) => Sext 6 a6where 6 is the string length obtained at compile time./0/0None ,-:DQRT ÿSafely create a Sext, possibly altering the source to match target length. If target length is less than that of the source, the source gets truncated. If target length is greater, the source is padded using the provided basic element. Elements on the left are preferred.+createLeft ' ' "foobarbaz" :: Sext 6 String"foobar",createLeft '#' "foobarbaz" :: Sext 12 String"foobarbaz###" Just like 2, except that elements on the right are preferred.,createRight '@' "foobarbaz" :: Sext 6 String"barbaz"-createRight '!' "foobarbaz" :: Sext 12 String"!!!foobarbaz"<Attempt to safely create a Sext if it matches target length.(create "foobar" :: Maybe (Sext 6 String) Just "foobar"(create "barbaz" :: Maybe (Sext 8 String)NothingThis is safer than  and unlike with  / h the source value is left unchanged. However, this implies a further run-time check for Nothing values.Append two Sexts together.3append $(sext "foo") $(sext "bar") :: Sext 6 String"foobar"*Construct a new Sext from a basic element.replicate '=' :: Sext 10 String "=========="(Map a Sext to a Sext of the same length.,map toUpper $(sext "Hello") :: Sext 5 String"HELLO"4Reduce Sext length, preferring elements on the left.&take $(sext "Foobar") :: Sext 3 String"Foo"5Reduce Sext length, preferring elements on the right.&drop $(sext "Foobar") :: Sext 2 String"ar"Obtain value-level length.\Fill a Sext with extra elements up to target length, padding original elements to the left.Like 0, but original elements are padded to the right.  1          !"#$%&'()*+,-../!sext-0.1.1-BjyrxFqRHCC97OcyzL8qfBData.Sext.Class Data.Sext.TH Data.Sext Paths_sextSextableSextElem unsafeCreateunwraplengthappend replicatemaptakedrop$fSextableByteString$fSextableText $fSextable[] $fShowSextsext$fIsStringLitS createLeft createRightcreatepadLeftpadRightcatchIOversionbindirlibdirdatadir libexecdir sysconfdir getBinDir getLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName ByteStringTextListD:R:SextiByteString0D:R:SextiText0 D:R:Sexti[]0LitS