-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Standardized conversion between string types
--
-- Avoids the need to remember many different functions for converting
-- string types. Just use one universal function toS for all monomorphic
-- string conversions.
@package string-conv
@version 0.1.1
module Data.String.Conv
-- | A type class to standardize string conversions. With this type class
-- you only need to remember one function for converting between any two
-- string variants. This package includes support for String, ByteString,
-- and Text as well as the Lazy and Strict variants where necessary.
--
-- This type class lets you control how conversion should behave when
-- failure is possible. Strict mode will cause an exception to be thrown
-- when decoding fails. Lenient mode will attempt to recover, inserting a
-- replacement character for invalid bytes.
--
-- StringConv's toS function is most useful when you have a fully
-- defined string conversion with a fixed (non-polymorphic) input and
-- output type. Of course you can still use it when you don't have a
-- fixed type. In that case you might need to specify a type class
-- constraint such as StringConv s String.
class StringConv a b
strConv :: StringConv a b => Leniency -> a -> b
-- | Universal string conversion function for strict decoding.
toS :: StringConv a b => a -> b
-- | Universal string conversion function for lenient decoding.
toSL :: StringConv a b => a -> b
-- | A lens for toS to make it slightly more convenient in some
-- scenarios.
convS :: (StringConv a b, StringConv b a, Functor f) => (b -> f b) -> a -> f a
-- | A lens for toSL to make it slightly more convenient in some
-- scenarios.
convSL :: (StringConv a b, StringConv b a, Functor f) => (b -> f b) -> a -> f a
-- | Data type representing the two leniency modes defining how decoding
-- failure is handled.
data Leniency
Lenient :: Leniency
Strict :: Leniency
instance Eq Leniency
instance Show Leniency
instance Read Leniency
instance Ord Leniency
instance Enum Leniency
instance Bounded Leniency
instance StringConv Text ByteString
instance StringConv Text ByteString
instance StringConv Text Text
instance StringConv Text Text
instance StringConv Text String
instance StringConv Text Text
instance StringConv Text Text
instance StringConv Text ByteString
instance StringConv Text ByteString
instance StringConv Text String
instance StringConv ByteString Text
instance StringConv ByteString Text
instance StringConv ByteString ByteString
instance StringConv ByteString ByteString
instance StringConv ByteString String
instance StringConv ByteString Text
instance StringConv ByteString Text
instance StringConv ByteString ByteString
instance StringConv ByteString ByteString
instance StringConv ByteString String
instance StringConv String Text
instance StringConv String Text
instance StringConv String ByteString
instance StringConv String ByteString
instance StringConv String String