-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Parse and render JSON. -- -- Argo parses and renders JSON. @package argo @version 0.2022.2.2 module Argo.Codec.Codec data Codec r w s i o Codec :: r o -> (i -> w o) -> s -> Codec r w s i o [decode] :: Codec r w s i o -> r o [encode] :: Codec r w s i o -> i -> w o [schema] :: Codec r w s i o -> s map :: (Functor r, Functor w) => (a -> b) -> (b -> a) -> Codec r w s a a -> Codec r w s b b mapMaybe :: (Alternative r, Alternative w, Monad r, Monad w) => (o2 -> Maybe o1) -> (i1 -> Maybe i2) -> Codec r w s i2 o2 -> Codec r w s i1 o1 project :: (i -> f) -> Codec r w s f o -> Codec r w s i o tap :: Functor f => (a -> f b) -> a -> f a toAlternative :: Alternative m => Maybe a -> m a instance (GHC.Base.Functor r, GHC.Base.Functor w) => GHC.Base.Functor (Argo.Codec.Codec.Codec r w s i) instance (GHC.Base.Applicative r, GHC.Base.Applicative w, GHC.Base.Applicative s, GHC.Base.Monoid a) => GHC.Base.Applicative (Argo.Codec.Codec.Codec r w (s a) i) instance (GHC.Base.Alternative r, GHC.Base.Alternative w, GHC.Base.Applicative s, GHC.Base.Monoid a) => GHC.Base.Alternative (Argo.Codec.Codec.Codec r w (s a) i) module Argo.Type.Flag data Flag Help :: Flag Spaces :: String -> Flag Tab :: Flag Version :: Flag instance GHC.Show.Show Argo.Type.Flag.Flag instance GHC.Classes.Eq Argo.Type.Flag.Flag module Argo.Type.Indent data Indent Spaces :: Int -> Indent Tab :: Indent instance GHC.Show.Show Argo.Type.Indent.Indent instance GHC.Classes.Eq Argo.Type.Indent.Indent module Argo.Type.Config data Config Config :: Indent -> Int -> Config [indent] :: Config -> Indent [level] :: Config -> Int initial :: Config hasIndent :: Config -> Bool increaseLevel :: Config -> Config instance GHC.Show.Show Argo.Type.Config.Config instance GHC.Classes.Eq Argo.Type.Config.Config module Argo.Type.Permission data Permission Allow :: Permission Forbid :: Permission instance GHC.Show.Show Argo.Type.Permission.Permission instance GHC.Classes.Eq Argo.Type.Permission.Permission module Argo.Type.Settings data Settings Settings :: Bool -> Indent -> Bool -> Settings [help] :: Settings -> Bool [indent] :: Settings -> Indent [version] :: Settings -> Bool initial :: Settings applyFlag :: Settings -> Flag -> Either String Settings instance GHC.Show.Show Argo.Type.Settings.Settings instance GHC.Classes.Eq Argo.Type.Settings.Settings module Argo.Literal backspace :: Word8 carriageReturn :: Word8 colon :: Word8 comma :: Word8 digitNine :: Word8 digitOne :: Word8 digitZero :: Word8 false :: ByteString formFeed :: Word8 fullStop :: Word8 horizontalTabulation :: Word8 hyphenMinus :: Word8 latinCapitalLetterE :: Word8 latinSmallLetterB :: Word8 latinSmallLetterE :: Word8 latinSmallLetterF :: Word8 latinSmallLetterN :: Word8 latinSmallLetterR :: Word8 latinSmallLetterT :: Word8 latinSmallLetterU :: Word8 leftCurlyBracket :: Word8 leftSquareBracket :: Word8 newLine :: Word8 null :: ByteString plusSign :: Word8 quotationMark :: Word8 reverseSolidus :: Word8 rightCurlyBracket :: Word8 rightSquareBracket :: Word8 solidus :: Word8 space :: Word8 tilde :: Word8 true :: ByteString module Argo.Type.Decimal data Decimal Decimal :: Integer -> Integer -> Decimal negate :: Decimal -> Decimal decimal :: Integer -> Integer -> Decimal normalize :: Decimal -> Decimal fromInteger :: Integer -> Decimal toInteger :: Decimal -> Maybe Integer fromRealFloat :: RealFloat a => a -> Maybe Decimal toRealFloat :: RealFloat a => Decimal -> a fromDigits :: [Int] -> Int -> Decimal toRational :: Decimal -> Rational fromRational :: Rational -> Maybe Decimal factor :: (Num a, Integral b) => b -> a -> b -> (a, b) instance GHC.Show.Show Argo.Type.Decimal.Decimal instance Control.DeepSeq.NFData Argo.Type.Decimal.Decimal instance Language.Haskell.TH.Syntax.Lift Argo.Type.Decimal.Decimal instance GHC.Generics.Generic Argo.Type.Decimal.Decimal instance GHC.Classes.Eq Argo.Type.Decimal.Decimal module Argo.Schema.Identifier newtype Identifier Identifier :: Text -> Identifier fromText :: Text -> Identifier toText :: Identifier -> Text instance GHC.Show.Show Argo.Schema.Identifier.Identifier instance GHC.Classes.Ord Argo.Schema.Identifier.Identifier instance Control.DeepSeq.NFData Argo.Schema.Identifier.Identifier instance Language.Haskell.TH.Syntax.Lift Argo.Schema.Identifier.Identifier instance GHC.Generics.Generic Argo.Schema.Identifier.Identifier instance GHC.Classes.Eq Argo.Schema.Identifier.Identifier instance Data.String.IsString Argo.Schema.Identifier.Identifier instance GHC.Base.Semigroup Argo.Schema.Identifier.Identifier module Argo.Type.Encoder type Encoder = ReaderT Config (WriterT Builder Identity) unwrap :: Config -> Encoder a -> (a, Builder) run :: Config -> Encoder a -> Builder list :: Encoder () -> Encoder () -> Encoder () -> (a -> Encoder ()) -> [a] -> Encoder () makeIndent :: Config -> Maybe Builder withNewLine :: Maybe Builder -> Encoder () module Argo.Type.Decoder type Decoder = StateT ByteString (ExceptT String Identity) unwrap :: Decoder a -> ByteString -> Either String (a, ByteString) run :: Decoder a -> ByteString -> Either String a list :: Decoder a -> Decoder [a] listWith :: Decoder a -> [a] -> Decoder [a] byteString :: ByteString -> Decoder () dropWhile :: (Word8 -> Bool) -> Decoder () eof :: Decoder () isDigit :: Word8 -> Bool isSpace :: Word8 -> Bool satisfy :: (Word8 -> Bool) -> Decoder Word8 spaces :: Decoder () takeWhile :: (Word8 -> Bool) -> Decoder ByteString takeWhile1 :: (Word8 -> Bool) -> Decoder ByteString word8 :: Word8 -> Decoder () module Argo.Pointer.Token newtype Token Token :: Text -> Token fromText :: Text -> Token toText :: Token -> Text decode :: Decoder Token unescape :: ByteString -> Either String ByteString unescapeHelper :: [Word8] -> Either String [Word8] encode :: Token -> Encoder () encodeChar :: BoundedPrim Word8 encodeEscape :: Word8 -> BoundedPrim a instance GHC.Show.Show Argo.Pointer.Token.Token instance Control.DeepSeq.NFData Argo.Pointer.Token.Token instance Language.Haskell.TH.Syntax.Lift Argo.Pointer.Token.Token instance GHC.Generics.Generic Argo.Pointer.Token.Token instance GHC.Classes.Eq Argo.Pointer.Token.Token instance Data.String.IsString Argo.Pointer.Token.Token module Argo.Json.String newtype String String :: Text -> String fromText :: Text -> String toText :: String -> Text encode :: String -> Encoder () encodeChar :: BoundedPrim Word8 encodeShortEscape :: Word8 -> BoundedPrim a encodeLongEscape :: BoundedPrim Word8 word8ToWord16 :: Word8 -> Word16 decode :: Decoder String findAt :: Word8 -> Int -> ByteString -> Maybe Int countConsecutive :: Word8 -> Int -> ByteString -> Int getClose :: ByteString -> Int -> Maybe Int unescapeText :: Text -> Either String Text combineSurrogatePairs :: String -> String combineSurrogatePair :: Char -> Char -> Char isHighSurrogate :: Char -> Bool isLowSurrogate :: Char -> Bool unescapeString :: String -> Either String String fromLongEscape :: Char -> Char -> Char -> Char -> Maybe Char fromHexadecimalDigit :: Char -> Maybe Int instance GHC.Show.Show Argo.Json.String.String instance GHC.Classes.Ord Argo.Json.String.String instance Control.DeepSeq.NFData Argo.Json.String.String instance Language.Haskell.TH.Syntax.Lift Argo.Json.String.String instance GHC.Generics.Generic Argo.Json.String.String instance GHC.Classes.Eq Argo.Json.String.String instance Data.String.IsString Argo.Json.String.String module Argo.Json.Name newtype Name Name :: String -> Name fromString :: String -> Name toString :: Name -> String encode :: Name -> Encoder () decode :: Decoder Name instance GHC.Show.Show Argo.Json.Name.Name instance GHC.Classes.Ord Argo.Json.Name.Name instance Control.DeepSeq.NFData Argo.Json.Name.Name instance Language.Haskell.TH.Syntax.Lift Argo.Json.Name.Name instance GHC.Generics.Generic Argo.Json.Name.Name instance GHC.Classes.Eq Argo.Json.Name.Name instance Data.String.IsString Argo.Json.Name.Name module Argo.Json.Number newtype Number Number :: Decimal -> Number fromDecimal :: Decimal -> Number toDecimal :: Number -> Decimal encode :: Number -> Encoder () decode :: Decoder Number negateIf :: Bool -> Integer -> Integer fromDigits :: ByteString -> Integer intToInteger :: Int -> Integer word8ToInteger :: Word8 -> Integer instance GHC.Show.Show Argo.Json.Number.Number instance Control.DeepSeq.NFData Argo.Json.Number.Number instance Language.Haskell.TH.Syntax.Lift Argo.Json.Number.Number instance GHC.Generics.Generic Argo.Json.Number.Number instance GHC.Classes.Eq Argo.Json.Number.Number module Argo.Json.Null newtype Null Null :: () -> Null fromUnit :: () -> Null toUnit :: Null -> () encode :: Null -> Encoder () decode :: Decoder Null instance GHC.Show.Show Argo.Json.Null.Null instance Control.DeepSeq.NFData Argo.Json.Null.Null instance Language.Haskell.TH.Syntax.Lift Argo.Json.Null.Null instance GHC.Generics.Generic Argo.Json.Null.Null instance GHC.Classes.Eq Argo.Json.Null.Null module Argo.Json.Member data Member value Member :: Name -> value -> Member value fromTuple :: (Name, value) -> Member value toTuple :: Member value -> (Name, value) encode :: (value -> Encoder ()) -> Member value -> Encoder () decode :: Decoder value -> Decoder (Member value) instance GHC.Show.Show value => GHC.Show.Show (Argo.Json.Member.Member value) instance Control.DeepSeq.NFData value => Control.DeepSeq.NFData (Argo.Json.Member.Member value) instance Language.Haskell.TH.Syntax.Lift value => Language.Haskell.TH.Syntax.Lift (Argo.Json.Member.Member value) instance GHC.Generics.Generic (Argo.Json.Member.Member value) instance GHC.Classes.Eq value => GHC.Classes.Eq (Argo.Json.Member.Member value) module Argo.Json.Object newtype Object value Object :: [Member value] -> Object value fromList :: [Member value] -> Object value toList :: Object value -> [Member value] encode :: (value -> Encoder ()) -> Object value -> Encoder () encodeElement :: (value -> Encoder ()) -> Int -> Member value -> Encoder () decode :: Decoder value -> Decoder (Object value) instance GHC.Show.Show value => GHC.Show.Show (Argo.Json.Object.Object value) instance Control.DeepSeq.NFData value => Control.DeepSeq.NFData (Argo.Json.Object.Object value) instance Language.Haskell.TH.Syntax.Lift value => Language.Haskell.TH.Syntax.Lift (Argo.Json.Object.Object value) instance GHC.Generics.Generic (Argo.Json.Object.Object value) instance GHC.Classes.Eq value => GHC.Classes.Eq (Argo.Json.Object.Object value) module Argo.Json.Boolean newtype Boolean Boolean :: Bool -> Boolean fromBool :: Bool -> Boolean toBool :: Boolean -> Bool encode :: Boolean -> Encoder () decode :: Decoder Boolean decodeFalse :: Decoder Boolean decodeTrue :: Decoder Boolean instance GHC.Show.Show Argo.Json.Boolean.Boolean instance Control.DeepSeq.NFData Argo.Json.Boolean.Boolean instance Language.Haskell.TH.Syntax.Lift Argo.Json.Boolean.Boolean instance GHC.Generics.Generic Argo.Json.Boolean.Boolean instance GHC.Classes.Eq Argo.Json.Boolean.Boolean module Argo.Json.Array newtype Array value Array :: [value] -> Array value fromList :: [value] -> Array value toList :: Array value -> [value] encode :: (value -> Encoder ()) -> Array value -> Encoder () decode :: Decoder value -> Decoder (Array value) instance GHC.Show.Show value => GHC.Show.Show (Argo.Json.Array.Array value) instance Control.DeepSeq.NFData value => Control.DeepSeq.NFData (Argo.Json.Array.Array value) instance Language.Haskell.TH.Syntax.Lift value => Language.Haskell.TH.Syntax.Lift (Argo.Json.Array.Array value) instance GHC.Generics.Generic (Argo.Json.Array.Array value) instance GHC.Classes.Eq value => GHC.Classes.Eq (Argo.Json.Array.Array value) module Argo.Json.Value -- | A JSON (JavaScript Object Notation) value, as described by RFC 8259. -- https://datatracker.ietf.org/doc/html/rfc8259 data Value Null :: Null -> Value Boolean :: Boolean -> Value Number :: Number -> Value String :: String -> Value Array :: Array Value -> Value Object :: Object Value -> Value encode :: Value -> Encoder () decode :: Decoder Value instance GHC.Show.Show Argo.Json.Value.Value instance Control.DeepSeq.NFData Argo.Json.Value.Value instance Language.Haskell.TH.Syntax.Lift Argo.Json.Value.Value instance GHC.Generics.Generic Argo.Json.Value.Value instance GHC.Classes.Eq Argo.Json.Value.Value instance Data.String.IsString Argo.Json.Value.Value module Argo.Schema.Schema -- | A JSON Schema. -- https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-01 newtype Schema Schema :: Value -> Schema fromValue :: Value -> Schema toValue :: Schema -> Value false :: Schema true :: Schema unidentified :: Schema -> (Maybe Identifier, Schema) identified :: Identifier -> Schema -> (Maybe Identifier, Schema) instance GHC.Show.Show Argo.Schema.Schema.Schema instance Control.DeepSeq.NFData Argo.Schema.Schema.Schema instance Language.Haskell.TH.Syntax.Lift Argo.Schema.Schema.Schema instance GHC.Generics.Generic Argo.Schema.Schema.Schema instance GHC.Classes.Eq Argo.Schema.Schema.Schema instance GHC.Base.Semigroup Argo.Schema.Schema.Schema instance GHC.Base.Monoid Argo.Schema.Schema.Schema module Argo.Pointer.Pointer -- | A JSON pointer, as described by RFC 6901. -- https://datatracker.ietf.org/doc/html/rfc6901 newtype Pointer Pointer :: [Token] -> Pointer fromList :: [Token] -> Pointer toList :: Pointer -> [Token] decode :: Decoder Pointer decodeToken :: Decoder Token encode :: Pointer -> Encoder () encodeToken :: Token -> Encoder () evaluate :: Pointer -> Value -> Either String Value atIndex :: Token -> Array value -> Either String value tokenToIndex :: Token -> Either String Int atKey :: Token -> Object value -> Either String value instance GHC.Show.Show Argo.Pointer.Pointer.Pointer instance Control.DeepSeq.NFData Argo.Pointer.Pointer.Pointer instance Language.Haskell.TH.Syntax.Lift Argo.Pointer.Pointer.Pointer instance GHC.Generics.Generic Argo.Pointer.Pointer.Pointer instance GHC.Classes.Eq Argo.Pointer.Pointer.Pointer module Argo.Pattern pattern Null :: Value pattern Boolean :: Bool -> Value pattern Number :: Decimal -> Value pattern String :: Text -> Value pattern Array :: [Value] -> Value pattern Object :: [Member Value] -> Value pattern Name :: Text -> Name pattern Decimal :: Integer -> Integer -> Decimal module Argo.Codec.Value decodeWith :: Value a -> Value -> Either String a encodeWith :: Value a -> a -> Value type Value a = Codec (ReaderT Value (ExceptT String Identity)) (MaybeT (StateT Value Identity)) (AccumT (Map Identifier Schema) Identity (Maybe Identifier, Schema)) a a arrayCodec :: Value (Array Value) objectCodec :: Value (Object Value) literalCodec :: Value -> Value () identified :: forall a. Typeable a => Value a -> Value a getRef :: Value a -> AccumT (Map Identifier Schema) Identity (Either Schema Identifier) ref :: Either Schema Identifier -> Value module Argo.Codec.List type List s e a = Codec (StateT [e] (ExceptT String Identity)) (WriterT [e] Identity) s a a fromListCodec :: (Permission -> s -> AccumT (Map Identifier Schema) Identity (Maybe Identifier, Schema)) -> Value [e] -> Permission -> List s e a -> Value a module Argo.Codec.Object type Object a = List (AccumT (Map Identifier Schema) Identity [((Name, Bool), (Maybe Identifier, Schema))]) (Member Value) a fromObjectCodec :: Permission -> Object a -> Value a required :: Name -> Value a -> Object a optional :: Name -> Value a -> Object (Maybe a) tagged :: String -> Value a -> Value a module Argo.Codec.Array type Array a = List (AccumT (Map Identifier Schema) Identity [(Maybe Identifier, Schema)]) Value a fromArrayCodec :: Permission -> Array a -> Value a element :: Value a -> Array a module Argo.Class.HasCodec class HasCodec a codec :: HasCodec a => Value a basicCodec :: forall a. Typeable a => Schema -> (a -> Value) -> (Value -> Maybe a) -> Value a castValue :: String -> (Value -> Maybe a) -> ReaderT Value (ExceptT String Identity) a typeMismatch :: String -> Value -> String instance Argo.Class.HasCodec.HasCodec Argo.Json.Value.Value instance Argo.Class.HasCodec.HasCodec Argo.Json.Null.Null instance Argo.Class.HasCodec.HasCodec Argo.Json.Boolean.Boolean instance Argo.Class.HasCodec.HasCodec Argo.Json.Number.Number instance Argo.Class.HasCodec.HasCodec Argo.Json.String.String instance (Argo.Class.HasCodec.HasCodec a, Data.Typeable.Internal.Typeable a) => Argo.Class.HasCodec.HasCodec (Argo.Json.Array.Array a) instance (Argo.Class.HasCodec.HasCodec a, Data.Typeable.Internal.Typeable a) => Argo.Class.HasCodec.HasCodec (Argo.Json.Object.Object a) instance (Argo.Class.HasCodec.HasCodec a, Data.Typeable.Internal.Typeable a) => Argo.Class.HasCodec.HasCodec (GHC.Maybe.Maybe a) instance (Argo.Class.HasCodec.HasCodec a, Argo.Class.HasCodec.HasCodec b, Data.Typeable.Internal.Typeable a, Data.Typeable.Internal.Typeable b) => Argo.Class.HasCodec.HasCodec (Data.Either.Either a b) instance Argo.Class.HasCodec.HasCodec () instance (Argo.Class.HasCodec.HasCodec a, Argo.Class.HasCodec.HasCodec b, Data.Typeable.Internal.Typeable a, Data.Typeable.Internal.Typeable b) => Argo.Class.HasCodec.HasCodec (a, b) instance (Argo.Class.HasCodec.HasCodec a, Argo.Class.HasCodec.HasCodec b, Argo.Class.HasCodec.HasCodec c, Data.Typeable.Internal.Typeable a, Data.Typeable.Internal.Typeable b, Data.Typeable.Internal.Typeable c) => Argo.Class.HasCodec.HasCodec (a, b, c) instance (Argo.Class.HasCodec.HasCodec a, Argo.Class.HasCodec.HasCodec b, Argo.Class.HasCodec.HasCodec c, Argo.Class.HasCodec.HasCodec d, Data.Typeable.Internal.Typeable a, Data.Typeable.Internal.Typeable b, Data.Typeable.Internal.Typeable c, Data.Typeable.Internal.Typeable d) => Argo.Class.HasCodec.HasCodec (a, b, c, d) instance (Argo.Class.HasCodec.HasCodec a, Argo.Class.HasCodec.HasCodec b, Argo.Class.HasCodec.HasCodec c, Argo.Class.HasCodec.HasCodec d, Argo.Class.HasCodec.HasCodec e, Data.Typeable.Internal.Typeable a, Data.Typeable.Internal.Typeable b, Data.Typeable.Internal.Typeable c, Data.Typeable.Internal.Typeable d, Data.Typeable.Internal.Typeable e) => Argo.Class.HasCodec.HasCodec (a, b, c, d, e) instance (Argo.Class.HasCodec.HasCodec a, Argo.Class.HasCodec.HasCodec b, Argo.Class.HasCodec.HasCodec c, Argo.Class.HasCodec.HasCodec d, Argo.Class.HasCodec.HasCodec e, Argo.Class.HasCodec.HasCodec f, Data.Typeable.Internal.Typeable a, Data.Typeable.Internal.Typeable b, Data.Typeable.Internal.Typeable c, Data.Typeable.Internal.Typeable d, Data.Typeable.Internal.Typeable e, Data.Typeable.Internal.Typeable f) => Argo.Class.HasCodec.HasCodec (a, b, c, d, e, f) instance (Argo.Class.HasCodec.HasCodec a, Argo.Class.HasCodec.HasCodec b, Argo.Class.HasCodec.HasCodec c, Argo.Class.HasCodec.HasCodec d, Argo.Class.HasCodec.HasCodec e, Argo.Class.HasCodec.HasCodec f, Argo.Class.HasCodec.HasCodec g, Data.Typeable.Internal.Typeable a, Data.Typeable.Internal.Typeable b, Data.Typeable.Internal.Typeable c, Data.Typeable.Internal.Typeable d, Data.Typeable.Internal.Typeable e, Data.Typeable.Internal.Typeable f, Data.Typeable.Internal.Typeable g) => Argo.Class.HasCodec.HasCodec (a, b, c, d, e, f, g) instance (Argo.Class.HasCodec.HasCodec a, Argo.Class.HasCodec.HasCodec b, Argo.Class.HasCodec.HasCodec c, Argo.Class.HasCodec.HasCodec d, Argo.Class.HasCodec.HasCodec e, Argo.Class.HasCodec.HasCodec f, Argo.Class.HasCodec.HasCodec g, Argo.Class.HasCodec.HasCodec h, Data.Typeable.Internal.Typeable a, Data.Typeable.Internal.Typeable b, Data.Typeable.Internal.Typeable c, Data.Typeable.Internal.Typeable d, Data.Typeable.Internal.Typeable e, Data.Typeable.Internal.Typeable f, Data.Typeable.Internal.Typeable g, Data.Typeable.Internal.Typeable h) => Argo.Class.HasCodec.HasCodec (a, b, c, d, e, f, g, h) instance Argo.Class.HasCodec.HasCodec GHC.Types.Bool instance Argo.Class.HasCodec.HasCodec Argo.Type.Decimal.Decimal instance Argo.Class.HasCodec.HasCodec Data.Text.Internal.Text instance (Argo.Class.HasCodec.HasCodec a, Data.Typeable.Internal.Typeable a) => Argo.Class.HasCodec.HasCodec [a] instance (Argo.Class.HasCodec.HasCodec a, Data.Typeable.Internal.Typeable a) => Argo.Class.HasCodec.HasCodec (Data.Map.Internal.Map Argo.Json.Name.Name a) instance (Argo.Class.HasCodec.HasCodec a, Data.Typeable.Internal.Typeable a) => Argo.Class.HasCodec.HasCodec (Data.Map.Internal.Map Argo.Json.String.String a) instance (Argo.Class.HasCodec.HasCodec a, Data.Typeable.Internal.Typeable a) => Argo.Class.HasCodec.HasCodec (Data.Map.Internal.Map Data.Text.Internal.Text a) instance (Argo.Class.HasCodec.HasCodec a, Data.Typeable.Internal.Typeable a) => Argo.Class.HasCodec.HasCodec (Data.Map.Internal.Map Argo.Vendor.Text.LazyText a) instance (Argo.Class.HasCodec.HasCodec a, Data.Typeable.Internal.Typeable a) => Argo.Class.HasCodec.HasCodec (Data.Map.Internal.Map GHC.Base.String a) instance Argo.Class.HasCodec.HasCodec GHC.Base.String instance Argo.Class.HasCodec.HasCodec GHC.Types.Char instance Argo.Class.HasCodec.HasCodec Argo.Vendor.Text.LazyText instance (Argo.Class.HasCodec.HasCodec a, Data.Typeable.Internal.Typeable a) => Argo.Class.HasCodec.HasCodec (GHC.Base.NonEmpty a) instance Argo.Class.HasCodec.HasCodec GHC.Integer.Type.Integer instance Argo.Class.HasCodec.HasCodec GHC.Types.Int instance Argo.Class.HasCodec.HasCodec GHC.Int.Int8 instance Argo.Class.HasCodec.HasCodec GHC.Int.Int16 instance Argo.Class.HasCodec.HasCodec GHC.Int.Int32 instance Argo.Class.HasCodec.HasCodec GHC.Int.Int64 instance Argo.Class.HasCodec.HasCodec GHC.Natural.Natural instance Argo.Class.HasCodec.HasCodec GHC.Types.Word instance Argo.Class.HasCodec.HasCodec GHC.Word.Word8 instance Argo.Class.HasCodec.HasCodec GHC.Word.Word16 instance Argo.Class.HasCodec.HasCodec GHC.Word.Word32 instance Argo.Class.HasCodec.HasCodec GHC.Word.Word64 instance Argo.Class.HasCodec.HasCodec GHC.Types.Float instance Argo.Class.HasCodec.HasCodec GHC.Types.Double instance Argo.Class.HasCodec.HasCodec Argo.Pointer.Pointer.Pointer instance Argo.Class.HasCodec.HasCodec Argo.Schema.Schema.Schema module Argo.Encode encode :: HasCodec a => a -> Builder encodeWith :: HasCodec a => Indent -> a -> Builder encodePointer :: Pointer -> Builder module Argo.Decode decode :: HasCodec a => ByteString -> Either String a decodePointer :: ByteString -> Either String Pointer module Argo.QuasiQuoter pointer :: QuasiQuoter schema :: QuasiQuoter value :: QuasiQuoter asValue :: Value -> Value defaultQuasiQuoter :: QuasiQuoter module Argo -- | A JSON (JavaScript Object Notation) value, as described by RFC 8259. -- https://datatracker.ietf.org/doc/html/rfc8259 data Value pattern Array :: [Value] -> Value pattern Boolean :: Bool -> Value pattern Null :: Value pattern Number :: Decimal -> Value pattern Object :: [Member Value] -> Value pattern String :: Text -> Value data Name pattern Name :: Text -> Name data Member value Member :: Name -> value -> Member value encode :: HasCodec a => a -> Builder encodeWith :: HasCodec a => Indent -> a -> Builder data Indent Spaces :: Int -> Indent Tab :: Indent decode :: HasCodec a => ByteString -> Either String a class HasCodec a codec :: HasCodec a => Value a value :: QuasiQuoter pointer :: QuasiQuoter schema :: QuasiQuoter -- | A JSON pointer, as described by RFC 6901. -- https://datatracker.ietf.org/doc/html/rfc6901 newtype Pointer Pointer :: [Token] -> Pointer newtype Token Token :: Text -> Token evaluate :: Pointer -> Value -> Either String Value encodePointer :: Pointer -> Builder decodePointer :: ByteString -> Either String Pointer data Decimal pattern Decimal :: Integer -> Integer -> Decimal -- | A JSON Schema. -- https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-01 data Schema module Argo.Main main :: IO () mainWith :: String -> [String] -> IO () getFlags :: [String] -> (([String], [String]), [Flag]) withSettings :: String -> [Flag] -> (Settings -> IO ()) -> IO () quote :: String -> String version :: String options :: [OptDescr Flag]