-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/

-- | Alternative arbitrary instance for Text
--   
--   The usual Arbitrary instance for Text (in quickcheck-instances)
--   only has single-byte instances and so isn't an ideal representation of
--   a valid UTF-8 character. This package has generators for one-, two-
--   and three-byte UTF-8 characters (all that are currently in use).
@package quickcheck-text
@version 0.1.2.1

module Test.QuickCheck.Utf8

-- | Generate a possibly-empty valid UTF-8 Text value.
genValidUtf8 :: Gen Text

-- | Shrink a possible-empty valid UTF-8 Text value.
shrinkValidUtf8 :: Text -> [Text]

-- | Generate a possibly-empty sequence of bytes which represent a valid
--   UTF-8 code point.
utf8BS :: Gen ByteString

-- | Shrink a possible-empty sequence of bytes which represent a valid
--   UTF-8 code point.
shrinkUtf8BS :: ByteString -> [ByteString]

-- | Like genValidUtf8, but does not allow empty Text values.
genValidUtf81 :: Gen Text

-- | List genValidUtf8, bute does not allow empty Text
--   values.
shrinkValidUtf81 :: Text -> [Text]

-- | Like utf8BS, but does not allow empty ByteStrings.
utf8BS1 :: Gen ByteString

-- | Like shrinkUtf8BS, but does not allow empty ByteStrings.
shrinkUtf8BS1 :: ByteString -> [ByteString]

-- | Generate a valid Char. Note that this is UTF-16, not UTF-8, but
--   the intent is the same: the Arbitrary instance for Char in
--   quickcheck makes no attempt to generate valid non-ASCII characters at
--   this time.
genChar :: Gen Char

-- | A valid UTF-8 character, one to three bytes long.
genUtf8Character :: Gen ByteString

-- | Single-byte UTF-8 (i.e., a standard ASCII byte with a cleared MSB).
oneByte :: Gen ByteString
twoByte :: Gen ByteString
threeByte :: Gen ByteString

module Data.Text.Arbitrary

-- | A space efficient, packed, unboxed Unicode text type.
data Text
instance Test.QuickCheck.Arbitrary.Arbitrary Data.Text.Internal.Text
