yaml-0.8.29: Support for parsing and rendering YAML documents.

Safe HaskellNone
LanguageHaskell98

Data.Yaml

Contents

Description

Provides a high-level interface for processing YAML files.

This module reuses most of the infrastructure from the aeson package. This means that you can use all of the existing tools for JSON processing for processing YAML files. As a result, much of the documentation below mentions JSON; do not let that confuse you, it's intentional.

For the most part, YAML content translates directly into JSON, and therefore there is very little data loss. If you need to deal with YAML more directly (e.g., directly deal with aliases), you should use the Text.Libyaml module instead.

For documentation on the aeson types, functions, classes, and operators, please see the Data.Aeson module of the aeson package.

Look in the examples directory of the source repository for some initial pointers on how to use this library.

Synopsis

Types

data Value :: * #

Instances

Eq Value 

Methods

(==) :: Value -> Value -> Bool #

(/=) :: Value -> Value -> Bool #

Data Value 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Value -> c Value #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Value #

toConstr :: Value -> Constr #

dataTypeOf :: Value -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c Value) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Value) #

gmapT :: (forall b. Data b => b -> b) -> Value -> Value #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Value -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Value -> r #

gmapQ :: (forall d. Data d => d -> u) -> Value -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Value -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Value -> m Value #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Value -> m Value #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Value -> m Value #

Read Value 
Show Value 

Methods

showsPrec :: Int -> Value -> ShowS #

show :: Value -> String #

showList :: [Value] -> ShowS #

IsString Value 

Methods

fromString :: String -> Value #

Generic Value 

Associated Types

type Rep Value :: * -> * #

Methods

from :: Value -> Rep Value x #

to :: Rep Value x -> Value #

Lift Value 

Methods

lift :: Value -> Q Exp #

Hashable Value 

Methods

hashWithSalt :: Int -> Value -> Int

hash :: Value -> Int

NFData Value 

Methods

rnf :: Value -> () #

ToJSON Value 

Methods

toJSON :: Value -> Value #

toEncoding :: Value -> Encoding #

toJSONList :: [Value] -> Value #

toEncodingList :: [Value] -> Encoding #

KeyValue Pair 

Methods

(.=) :: ToJSON v => Text -> v -> Pair #

FromJSON Value 
FromString Value 

Methods

fromString :: String -> Value

FromString Encoding 

Methods

fromString :: String -> Encoding

GKeyValue Encoding Series 

Methods

gPair :: String -> Encoding -> Series

FromPairs Encoding Series 

Methods

fromPairs :: Series -> Encoding

GToJSON Value arity (U1 *) 

Methods

gToJSON :: Options -> ToArgs Value arity a -> U1 * a -> Value

GToJSON Encoding arity (U1 *) 

Methods

gToJSON :: Options -> ToArgs Encoding arity a -> U1 * a -> Encoding

ToJSON1 f => GToJSON Value One (Rec1 * f) 

Methods

gToJSON :: Options -> ToArgs Value One a -> Rec1 * f a -> Value

ToJSON1 f => GToJSON Encoding One (Rec1 * f) 

Methods

gToJSON :: Options -> ToArgs Encoding One a -> Rec1 * f a -> Encoding

ToJSON a => GToJSON Value arity (K1 * i a) 

Methods

gToJSON :: Options -> ToArgs Value arity a -> K1 * i a a -> Value

(WriteProduct arity a, WriteProduct arity b, ProductSize a, ProductSize b) => GToJSON Value arity ((:*:) * a b) 

Methods

gToJSON :: Options -> ToArgs Value arity a -> (* :*: a) b a -> Value

ToJSON a => GToJSON Encoding arity (K1 * i a) 

Methods

gToJSON :: Options -> ToArgs Encoding arity a -> K1 * i a a -> Encoding

(EncodeProduct arity a, EncodeProduct arity b) => GToJSON Encoding arity ((:*:) * a b) 

Methods

gToJSON :: Options -> ToArgs Encoding arity a -> (* :*: a) b a -> Encoding

(ToJSON1 f, GToJSON Value One g) => GToJSON Value One ((:.:) * * f g) 

Methods

gToJSON :: Options -> ToArgs Value One a -> (* :.: *) f g a -> Value

(ToJSON1 f, GToJSON Encoding One g) => GToJSON Encoding One ((:.:) * * f g) 

Methods

gToJSON :: Options -> ToArgs Encoding One a -> (* :.: *) f g a -> Encoding

ToJSON v => GKeyValue v (DList Pair) 

Methods

gPair :: String -> v -> DList Pair

FromPairs Value (DList Pair) 

Methods

fromPairs :: DList Pair -> Value

(GToJSON Value arity a, ConsToJSON Value arity a, Constructor Meta c) => SumToJSON' * TwoElemArray Value arity (C1 * c a) 

Methods

sumToJSON' :: Options -> ToArgs arity (C1 * c a) a -> f a -> Tagged TwoElemArray Value arity

(GToJSON Encoding arity a, ConsToJSON Encoding arity a, Constructor Meta c) => SumToJSON' * TwoElemArray Encoding arity (C1 * c a) 

Methods

sumToJSON' :: Options -> ToArgs arity (C1 * c a) a -> f a -> Tagged TwoElemArray Encoding arity

type Rep Value 

data Parser a :: * -> * #

Instances

Monad Parser 

Methods

(>>=) :: Parser a -> (a -> Parser b) -> Parser b #

(>>) :: Parser a -> Parser b -> Parser b #

return :: a -> Parser a #

fail :: String -> Parser a #

Functor Parser 

Methods

fmap :: (a -> b) -> Parser a -> Parser b #

(<$) :: a -> Parser b -> Parser a #

MonadFail Parser 

Methods

fail :: String -> Parser a #

Applicative Parser 

Methods

pure :: a -> Parser a #

(<*>) :: Parser (a -> b) -> Parser a -> Parser b #

liftA2 :: (a -> b -> c) -> Parser a -> Parser b -> Parser c #

(*>) :: Parser a -> Parser b -> Parser b #

(<*) :: Parser a -> Parser b -> Parser a #

Alternative Parser 

Methods

empty :: Parser a #

(<|>) :: Parser a -> Parser a -> Parser a #

some :: Parser a -> Parser [a] #

many :: Parser a -> Parser [a] #

MonadPlus Parser 

Methods

mzero :: Parser a #

mplus :: Parser a -> Parser a -> Parser a #

Semigroup (Parser a) 

Methods

(<>) :: Parser a -> Parser a -> Parser a #

sconcat :: NonEmpty (Parser a) -> Parser a #

stimes :: Integral b => b -> Parser a -> Parser a #

Monoid (Parser a) 

Methods

mempty :: Parser a #

mappend :: Parser a -> Parser a -> Parser a #

mconcat :: [Parser a] -> Parser a #

type Array = Vector Value #

prettyPrintParseException :: ParseException -> String Source #

Alternative to show to display a ParseException on the screen. Instead of displaying the data constructors applied to their arguments, a more textual output is returned. For example, instead of printing:

InvalidYaml (Just (YamlParseException {yamlProblem = "did not find expected ',' or '}'", yamlContext = "while parsing a flow mapping", yamlProblemMark = YamlMark {yamlIndex = 42, yamlLine = 2, yamlColumn = 12}})))

It looks more pleasant to print:

YAML parse exception at line 2, column 12,
while parsing a flow mapping:
did not find expected ',' or '}'

Since 0.8.11

data YamlMark Source #

The pointer position

Constructors

YamlMark 

Fields

Constructors and accessors

object :: [Pair] -> Value #

(.=) :: KeyValue kv => forall v. ToJSON v => Text -> v -> kv #

(.:) :: FromJSON a => Object -> Text -> Parser a #

(.:?) :: FromJSON a => Object -> Text -> Parser (Maybe a) #

(.!=) :: Parser (Maybe a) -> a -> Parser a #

With helpers (since 0.8.23)

withObject :: String -> (Object -> Parser a) -> Value -> Parser a #

withText :: String -> (Text -> Parser a) -> Value -> Parser a #

withArray :: String -> (Array -> Parser a) -> Value -> Parser a #

withBool :: String -> (Bool -> Parser a) -> Value -> Parser a #

Parsing

parseMonad :: Monad m => (a -> Parser b) -> a -> m b Source #

parseEither :: (a -> Parser b) -> a -> Either String b #

parseMaybe :: (a -> Parser b) -> a -> Maybe b #

Classes

class ToJSON a where #

Methods

toJSON :: a -> Value #

toEncoding :: a -> Encoding #

toJSONList :: [a] -> Value #

toEncodingList :: [a] -> Encoding #

Instances

ToJSON Bool 

Methods

toJSON :: Bool -> Value #

toEncoding :: Bool -> Encoding #

toJSONList :: [Bool] -> Value #

toEncodingList :: [Bool] -> Encoding #

ToJSON Char 

Methods

toJSON :: Char -> Value #

toEncoding :: Char -> Encoding #

toJSONList :: [Char] -> Value #

toEncodingList :: [Char] -> Encoding #

ToJSON Double 

Methods

toJSON :: Double -> Value #

toEncoding :: Double -> Encoding #

toJSONList :: [Double] -> Value #

toEncodingList :: [Double] -> Encoding #

ToJSON Float 

Methods

toJSON :: Float -> Value #

toEncoding :: Float -> Encoding #

toJSONList :: [Float] -> Value #

toEncodingList :: [Float] -> Encoding #

ToJSON Int 

Methods

toJSON :: Int -> Value #

toEncoding :: Int -> Encoding #

toJSONList :: [Int] -> Value #

toEncodingList :: [Int] -> Encoding #

ToJSON Int8 

Methods

toJSON :: Int8 -> Value #

toEncoding :: Int8 -> Encoding #

toJSONList :: [Int8] -> Value #

toEncodingList :: [Int8] -> Encoding #

ToJSON Int16 

Methods

toJSON :: Int16 -> Value #

toEncoding :: Int16 -> Encoding #

toJSONList :: [Int16] -> Value #

toEncodingList :: [Int16] -> Encoding #

ToJSON Int32 

Methods

toJSON :: Int32 -> Value #

toEncoding :: Int32 -> Encoding #

toJSONList :: [Int32] -> Value #

toEncodingList :: [Int32] -> Encoding #

ToJSON Int64 

Methods

toJSON :: Int64 -> Value #

toEncoding :: Int64 -> Encoding #

toJSONList :: [Int64] -> Value #

toEncodingList :: [Int64] -> Encoding #

ToJSON Integer 

Methods

toJSON :: Integer -> Value #

toEncoding :: Integer -> Encoding #

toJSONList :: [Integer] -> Value #

toEncodingList :: [Integer] -> Encoding #

ToJSON Natural 

Methods

toJSON :: Natural -> Value #

toEncoding :: Natural -> Encoding #

toJSONList :: [Natural] -> Value #

toEncodingList :: [Natural] -> Encoding #

ToJSON Ordering 

Methods

toJSON :: Ordering -> Value #

toEncoding :: Ordering -> Encoding #

toJSONList :: [Ordering] -> Value #

toEncodingList :: [Ordering] -> Encoding #

ToJSON Word 

Methods

toJSON :: Word -> Value #

toEncoding :: Word -> Encoding #

toJSONList :: [Word] -> Value #

toEncodingList :: [Word] -> Encoding #

ToJSON Word8 

Methods

toJSON :: Word8 -> Value #

toEncoding :: Word8 -> Encoding #

toJSONList :: [Word8] -> Value #

toEncodingList :: [Word8] -> Encoding #

ToJSON Word16 

Methods

toJSON :: Word16 -> Value #

toEncoding :: Word16 -> Encoding #

toJSONList :: [Word16] -> Value #

toEncodingList :: [Word16] -> Encoding #

ToJSON Word32 

Methods

toJSON :: Word32 -> Value #

toEncoding :: Word32 -> Encoding #

toJSONList :: [Word32] -> Value #

toEncodingList :: [Word32] -> Encoding #

ToJSON Word64 

Methods

toJSON :: Word64 -> Value #

toEncoding :: Word64 -> Encoding #

toJSONList :: [Word64] -> Value #

toEncodingList :: [Word64] -> Encoding #

ToJSON () 

Methods

toJSON :: () -> Value #

toEncoding :: () -> Encoding #

toJSONList :: [()] -> Value #

toEncodingList :: [()] -> Encoding #

ToJSON Scientific 

Methods

toJSON :: Scientific -> Value #

toEncoding :: Scientific -> Encoding #

toJSONList :: [Scientific] -> Value #

toEncodingList :: [Scientific] -> Encoding #

ToJSON Text 

Methods

toJSON :: Text -> Value #

toEncoding :: Text -> Encoding #

toJSONList :: [Text] -> Value #

toEncodingList :: [Text] -> Encoding #

ToJSON UTCTime 

Methods

toJSON :: UTCTime -> Value #

toEncoding :: UTCTime -> Encoding #

toJSONList :: [UTCTime] -> Value #

toEncodingList :: [UTCTime] -> Encoding #

ToJSON Text 

Methods

toJSON :: Text -> Value #

toEncoding :: Text -> Encoding #

toJSONList :: [Text] -> Value #

toEncodingList :: [Text] -> Encoding #

ToJSON Version 

Methods

toJSON :: Version -> Value #

toEncoding :: Version -> Encoding #

toJSONList :: [Version] -> Value #

toEncodingList :: [Version] -> Encoding #

ToJSON CTime 

Methods

toJSON :: CTime -> Value #

toEncoding :: CTime -> Encoding #

toJSONList :: [CTime] -> Value #

toEncodingList :: [CTime] -> Encoding #

ToJSON IntSet 

Methods

toJSON :: IntSet -> Value #

toEncoding :: IntSet -> Encoding #

toJSONList :: [IntSet] -> Value #

toEncodingList :: [IntSet] -> Encoding #

ToJSON ZonedTime 

Methods

toJSON :: ZonedTime -> Value #

toEncoding :: ZonedTime -> Encoding #

toJSONList :: [ZonedTime] -> Value #

toEncodingList :: [ZonedTime] -> Encoding #

ToJSON LocalTime 

Methods

toJSON :: LocalTime -> Value #

toEncoding :: LocalTime -> Encoding #

toJSONList :: [LocalTime] -> Value #

toEncodingList :: [LocalTime] -> Encoding #

ToJSON TimeOfDay 

Methods

toJSON :: TimeOfDay -> Value #

toEncoding :: TimeOfDay -> Encoding #

toJSONList :: [TimeOfDay] -> Value #

toEncodingList :: [TimeOfDay] -> Encoding #

ToJSON NominalDiffTime 
ToJSON DiffTime 

Methods

toJSON :: DiffTime -> Value #

toEncoding :: DiffTime -> Encoding #

toJSONList :: [DiffTime] -> Value #

toEncodingList :: [DiffTime] -> Encoding #

ToJSON Day 

Methods

toJSON :: Day -> Value #

toEncoding :: Day -> Encoding #

toJSONList :: [Day] -> Value #

toEncodingList :: [Day] -> Encoding #

ToJSON Value 

Methods

toJSON :: Value -> Value #

toEncoding :: Value -> Encoding #

toJSONList :: [Value] -> Value #

toEncodingList :: [Value] -> Encoding #

ToJSON DotNetTime 

Methods

toJSON :: DotNetTime -> Value #

toEncoding :: DotNetTime -> Encoding #

toJSONList :: [DotNetTime] -> Value #

toEncodingList :: [DotNetTime] -> Encoding #

ToJSON Number 

Methods

toJSON :: Number -> Value #

toEncoding :: Number -> Encoding #

toJSONList :: [Number] -> Value #

toEncodingList :: [Number] -> Encoding #

ToJSON UUID 

Methods

toJSON :: UUID -> Value #

toEncoding :: UUID -> Encoding #

toJSONList :: [UUID] -> Value #

toEncodingList :: [UUID] -> Encoding #

ToJSON a => ToJSON [a] 

Methods

toJSON :: [a] -> Value #

toEncoding :: [a] -> Encoding #

toJSONList :: [[a]] -> Value #

toEncodingList :: [[a]] -> Encoding #

ToJSON a => ToJSON (Maybe a) 

Methods

toJSON :: Maybe a -> Value #

toEncoding :: Maybe a -> Encoding #

toJSONList :: [Maybe a] -> Value #

toEncodingList :: [Maybe a] -> Encoding #

(ToJSON a, Integral a) => ToJSON (Ratio a) 

Methods

toJSON :: Ratio a -> Value #

toEncoding :: Ratio a -> Encoding #

toJSONList :: [Ratio a] -> Value #

toEncodingList :: [Ratio a] -> Encoding #

HasResolution a => ToJSON (Fixed a) 

Methods

toJSON :: Fixed a -> Value #

toEncoding :: Fixed a -> Encoding #

toJSONList :: [Fixed a] -> Value #

toEncodingList :: [Fixed a] -> Encoding #

ToJSON a => ToJSON (Min a) 

Methods

toJSON :: Min a -> Value #

toEncoding :: Min a -> Encoding #

toJSONList :: [Min a] -> Value #

toEncodingList :: [Min a] -> Encoding #

ToJSON a => ToJSON (Max a) 

Methods

toJSON :: Max a -> Value #

toEncoding :: Max a -> Encoding #

toJSONList :: [Max a] -> Value #

toEncodingList :: [Max a] -> Encoding #

ToJSON a => ToJSON (First a) 

Methods

toJSON :: First a -> Value #

toEncoding :: First a -> Encoding #

toJSONList :: [First a] -> Value #

toEncodingList :: [First a] -> Encoding #

ToJSON a => ToJSON (Last a) 

Methods

toJSON :: Last a -> Value #

toEncoding :: Last a -> Encoding #

toJSONList :: [Last a] -> Value #

toEncodingList :: [Last a] -> Encoding #

ToJSON a => ToJSON (WrappedMonoid a) 

Methods

toJSON :: WrappedMonoid a -> Value #

toEncoding :: WrappedMonoid a -> Encoding #

toJSONList :: [WrappedMonoid a] -> Value #

toEncodingList :: [WrappedMonoid a] -> Encoding #

ToJSON a => ToJSON (Option a) 

Methods

toJSON :: Option a -> Value #

toEncoding :: Option a -> Encoding #

toJSONList :: [Option a] -> Value #

toEncodingList :: [Option a] -> Encoding #

ToJSON a => ToJSON (NonEmpty a) 

Methods

toJSON :: NonEmpty a -> Value #

toEncoding :: NonEmpty a -> Encoding #

toJSONList :: [NonEmpty a] -> Value #

toEncodingList :: [NonEmpty a] -> Encoding #

ToJSON a => ToJSON (Identity a) 

Methods

toJSON :: Identity a -> Value #

toEncoding :: Identity a -> Encoding #

toJSONList :: [Identity a] -> Value #

toEncodingList :: [Identity a] -> Encoding #

ToJSON a => ToJSON (Dual a) 

Methods

toJSON :: Dual a -> Value #

toEncoding :: Dual a -> Encoding #

toJSONList :: [Dual a] -> Value #

toEncodingList :: [Dual a] -> Encoding #

ToJSON a => ToJSON (First a) 

Methods

toJSON :: First a -> Value #

toEncoding :: First a -> Encoding #

toJSONList :: [First a] -> Value #

toEncodingList :: [First a] -> Encoding #

ToJSON a => ToJSON (Last a) 

Methods

toJSON :: Last a -> Value #

toEncoding :: Last a -> Encoding #

toJSONList :: [Last a] -> Value #

toEncodingList :: [Last a] -> Encoding #

ToJSON a => ToJSON (IntMap a) 

Methods

toJSON :: IntMap a -> Value #

toEncoding :: IntMap a -> Encoding #

toJSONList :: [IntMap a] -> Value #

toEncodingList :: [IntMap a] -> Encoding #

ToJSON v => ToJSON (Tree v) 

Methods

toJSON :: Tree v -> Value #

toEncoding :: Tree v -> Encoding #

toJSONList :: [Tree v] -> Value #

toEncodingList :: [Tree v] -> Encoding #

ToJSON a => ToJSON (Seq a) 

Methods

toJSON :: Seq a -> Value #

toEncoding :: Seq a -> Encoding #

toJSONList :: [Seq a] -> Value #

toEncodingList :: [Seq a] -> Encoding #

ToJSON a => ToJSON (Set a) 

Methods

toJSON :: Set a -> Value #

toEncoding :: Set a -> Encoding #

toJSONList :: [Set a] -> Value #

toEncodingList :: [Set a] -> Encoding #

ToJSON a => ToJSON (HashSet a) 

Methods

toJSON :: HashSet a -> Value #

toEncoding :: HashSet a -> Encoding #

toJSONList :: [HashSet a] -> Value #

toEncodingList :: [HashSet a] -> Encoding #

ToJSON a => ToJSON (Vector a) 

Methods

toJSON :: Vector a -> Value #

toEncoding :: Vector a -> Encoding #

toJSONList :: [Vector a] -> Value #

toEncodingList :: [Vector a] -> Encoding #

(Vector Vector a, ToJSON a) => ToJSON (Vector a) 

Methods

toJSON :: Vector a -> Value #

toEncoding :: Vector a -> Encoding #

toJSONList :: [Vector a] -> Value #

toEncodingList :: [Vector a] -> Encoding #

(Prim a, ToJSON a) => ToJSON (Vector a) 

Methods

toJSON :: Vector a -> Value #

toEncoding :: Vector a -> Encoding #

toJSONList :: [Vector a] -> Value #

toEncodingList :: [Vector a] -> Encoding #

(Storable a, ToJSON a) => ToJSON (Vector a) 

Methods

toJSON :: Vector a -> Value #

toEncoding :: Vector a -> Encoding #

toJSONList :: [Vector a] -> Value #

toEncodingList :: [Vector a] -> Encoding #

ToJSON a => ToJSON (DList a) 

Methods

toJSON :: DList a -> Value #

toEncoding :: DList a -> Encoding #

toJSONList :: [DList a] -> Value #

toEncodingList :: [DList a] -> Encoding #

(ToJSON a, ToJSON b) => ToJSON (Either a b) 

Methods

toJSON :: Either a b -> Value #

toEncoding :: Either a b -> Encoding #

toJSONList :: [Either a b] -> Value #

toEncodingList :: [Either a b] -> Encoding #

(ToJSON a, ToJSON b) => ToJSON (a, b) 

Methods

toJSON :: (a, b) -> Value #

toEncoding :: (a, b) -> Encoding #

toJSONList :: [(a, b)] -> Value #

toEncodingList :: [(a, b)] -> Encoding #

(ToJSON v, ToJSONKey k) => ToJSON (HashMap k v) 

Methods

toJSON :: HashMap k v -> Value #

toEncoding :: HashMap k v -> Encoding #

toJSONList :: [HashMap k v] -> Value #

toEncodingList :: [HashMap k v] -> Encoding #

(ToJSON v, ToJSONKey k) => ToJSON (Map k v) 

Methods

toJSON :: Map k v -> Value #

toEncoding :: Map k v -> Encoding #

toJSONList :: [Map k v] -> Value #

toEncodingList :: [Map k v] -> Encoding #

ToJSON (Proxy k a) 

Methods

toJSON :: Proxy k a -> Value #

toEncoding :: Proxy k a -> Encoding #

toJSONList :: [Proxy k a] -> Value #

toEncodingList :: [Proxy k a] -> Encoding #

(ToJSON a, ToJSON b, ToJSON c) => ToJSON (a, b, c) 

Methods

toJSON :: (a, b, c) -> Value #

toEncoding :: (a, b, c) -> Encoding #

toJSONList :: [(a, b, c)] -> Value #

toEncodingList :: [(a, b, c)] -> Encoding #

ToJSON a => ToJSON (Const k a b) 

Methods

toJSON :: Const k a b -> Value #

toEncoding :: Const k a b -> Encoding #

toJSONList :: [Const k a b] -> Value #

toEncodingList :: [Const k a b] -> Encoding #

ToJSON b => ToJSON (Tagged k a b) 

Methods

toJSON :: Tagged k a b -> Value #

toEncoding :: Tagged k a b -> Encoding #

toJSONList :: [Tagged k a b] -> Value #

toEncodingList :: [Tagged k a b] -> Encoding #

(ToJSON a, ToJSON b, ToJSON c, ToJSON d) => ToJSON (a, b, c, d) 

Methods

toJSON :: (a, b, c, d) -> Value #

toEncoding :: (a, b, c, d) -> Encoding #

toJSONList :: [(a, b, c, d)] -> Value #

toEncodingList :: [(a, b, c, d)] -> Encoding #

(ToJSON1 f, ToJSON1 g, ToJSON a) => ToJSON (Product * f g a) 

Methods

toJSON :: Product * f g a -> Value #

toEncoding :: Product * f g a -> Encoding #

toJSONList :: [Product * f g a] -> Value #

toEncodingList :: [Product * f g a] -> Encoding #

(ToJSON1 f, ToJSON1 g, ToJSON a) => ToJSON (Sum * f g a) 

Methods

toJSON :: Sum * f g a -> Value #

toEncoding :: Sum * f g a -> Encoding #

toJSONList :: [Sum * f g a] -> Value #

toEncodingList :: [Sum * f g a] -> Encoding #

(ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e) => ToJSON (a, b, c, d, e) 

Methods

toJSON :: (a, b, c, d, e) -> Value #

toEncoding :: (a, b, c, d, e) -> Encoding #

toJSONList :: [(a, b, c, d, e)] -> Value #

toEncodingList :: [(a, b, c, d, e)] -> Encoding #

(ToJSON1 f, ToJSON1 g, ToJSON a) => ToJSON (Compose * * f g a) 

Methods

toJSON :: Compose * * f g a -> Value #

toEncoding :: Compose * * f g a -> Encoding #

toJSONList :: [Compose * * f g a] -> Value #

toEncodingList :: [Compose * * f g a] -> Encoding #

(ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f) => ToJSON (a, b, c, d, e, f) 

Methods

toJSON :: (a, b, c, d, e, f) -> Value #

toEncoding :: (a, b, c, d, e, f) -> Encoding #

toJSONList :: [(a, b, c, d, e, f)] -> Value #

toEncodingList :: [(a, b, c, d, e, f)] -> Encoding #

(ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f, ToJSON g) => ToJSON (a, b, c, d, e, f, g) 

Methods

toJSON :: (a, b, c, d, e, f, g) -> Value #

toEncoding :: (a, b, c, d, e, f, g) -> Encoding #

toJSONList :: [(a, b, c, d, e, f, g)] -> Value #

toEncodingList :: [(a, b, c, d, e, f, g)] -> Encoding #

(ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f, ToJSON g, ToJSON h) => ToJSON (a, b, c, d, e, f, g, h) 

Methods

toJSON :: (a, b, c, d, e, f, g, h) -> Value #

toEncoding :: (a, b, c, d, e, f, g, h) -> Encoding #

toJSONList :: [(a, b, c, d, e, f, g, h)] -> Value #

toEncodingList :: [(a, b, c, d, e, f, g, h)] -> Encoding #

(ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f, ToJSON g, ToJSON h, ToJSON i) => ToJSON (a, b, c, d, e, f, g, h, i) 

Methods

toJSON :: (a, b, c, d, e, f, g, h, i) -> Value #

toEncoding :: (a, b, c, d, e, f, g, h, i) -> Encoding #

toJSONList :: [(a, b, c, d, e, f, g, h, i)] -> Value #

toEncodingList :: [(a, b, c, d, e, f, g, h, i)] -> Encoding #

(ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f, ToJSON g, ToJSON h, ToJSON i, ToJSON j) => ToJSON (a, b, c, d, e, f, g, h, i, j) 

Methods

toJSON :: (a, b, c, d, e, f, g, h, i, j) -> Value #

toEncoding :: (a, b, c, d, e, f, g, h, i, j) -> Encoding #

toJSONList :: [(a, b, c, d, e, f, g, h, i, j)] -> Value #

toEncodingList :: [(a, b, c, d, e, f, g, h, i, j)] -> Encoding #

(ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f, ToJSON g, ToJSON h, ToJSON i, ToJSON j, ToJSON k) => ToJSON (a, b, c, d, e, f, g, h, i, j, k) 

Methods

toJSON :: (a, b, c, d, e, f, g, h, i, j, k) -> Value #

toEncoding :: (a, b, c, d, e, f, g, h, i, j, k) -> Encoding #

toJSONList :: [(a, b, c, d, e, f, g, h, i, j, k)] -> Value #

toEncodingList :: [(a, b, c, d, e, f, g, h, i, j, k)] -> Encoding #

(ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f, ToJSON g, ToJSON h, ToJSON i, ToJSON j, ToJSON k, ToJSON l) => ToJSON (a, b, c, d, e, f, g, h, i, j, k, l) 

Methods

toJSON :: (a, b, c, d, e, f, g, h, i, j, k, l) -> Value #

toEncoding :: (a, b, c, d, e, f, g, h, i, j, k, l) -> Encoding #

toJSONList :: [(a, b, c, d, e, f, g, h, i, j, k, l)] -> Value #

toEncodingList :: [(a, b, c, d, e, f, g, h, i, j, k, l)] -> Encoding #

(ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f, ToJSON g, ToJSON h, ToJSON i, ToJSON j, ToJSON k, ToJSON l, ToJSON m) => ToJSON (a, b, c, d, e, f, g, h, i, j, k, l, m) 

Methods

toJSON :: (a, b, c, d, e, f, g, h, i, j, k, l, m) -> Value #

toEncoding :: (a, b, c, d, e, f, g, h, i, j, k, l, m) -> Encoding #

toJSONList :: [(a, b, c, d, e, f, g, h, i, j, k, l, m)] -> Value #

toEncodingList :: [(a, b, c, d, e, f, g, h, i, j, k, l, m)] -> Encoding #

(ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f, ToJSON g, ToJSON h, ToJSON i, ToJSON j, ToJSON k, ToJSON l, ToJSON m, ToJSON n) => ToJSON (a, b, c, d, e, f, g, h, i, j, k, l, m, n) 

Methods

toJSON :: (a, b, c, d, e, f, g, h, i, j, k, l, m, n) -> Value #

toEncoding :: (a, b, c, d, e, f, g, h, i, j, k, l, m, n) -> Encoding #

toJSONList :: [(a, b, c, d, e, f, g, h, i, j, k, l, m, n)] -> Value #

toEncodingList :: [(a, b, c, d, e, f, g, h, i, j, k, l, m, n)] -> Encoding #

(ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f, ToJSON g, ToJSON h, ToJSON i, ToJSON j, ToJSON k, ToJSON l, ToJSON m, ToJSON n, ToJSON o) => ToJSON (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) 

Methods

toJSON :: (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) -> Value #

toEncoding :: (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) -> Encoding #

toJSONList :: [(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)] -> Value #

toEncodingList :: [(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)] -> Encoding #

class FromJSON a where #

Methods

parseJSON :: Value -> Parser a #

parseJSONList :: Value -> Parser [a] #

Instances

FromJSON Bool 
FromJSON Char 
FromJSON Double 
FromJSON Float 
FromJSON Int 
FromJSON Int8 
FromJSON Int16 
FromJSON Int32 
FromJSON Int64 
FromJSON Integer 
FromJSON Natural 
FromJSON Ordering 
FromJSON Word 
FromJSON Word8 
FromJSON Word16 
FromJSON Word32 
FromJSON Word64 
FromJSON () 

Methods

parseJSON :: Value -> Parser () #

parseJSONList :: Value -> Parser [()] #

FromJSON Scientific 
FromJSON Text 
FromJSON UTCTime 
FromJSON Text 
FromJSON Version 
FromJSON CTime 
FromJSON IntSet 
FromJSON ZonedTime 
FromJSON LocalTime 
FromJSON TimeOfDay 
FromJSON NominalDiffTime 
FromJSON DiffTime 
FromJSON Day 
FromJSON Value 
FromJSON DotNetTime 

Methods

parseJSON :: Value -> Parser DotNetTime #

parseJSONList :: Value -> Parser [DotNetTime] #

FromJSON Number 

Methods

parseJSON :: Value -> Parser Number #

parseJSONList :: Value -> Parser [Number] #

FromJSON UUID 

Methods

parseJSON :: Value -> Parser UUID #

parseJSONList :: Value -> Parser [UUID] #

FromJSON a => FromJSON [a] 

Methods

parseJSON :: Value -> Parser [a] #

parseJSONList :: Value -> Parser [[a]] #

FromJSON a => FromJSON (Maybe a) 
(FromJSON a, Integral a) => FromJSON (Ratio a) 
HasResolution a => FromJSON (Fixed a) 
FromJSON a => FromJSON (Min a) 

Methods

parseJSON :: Value -> Parser (Min a) #

parseJSONList :: Value -> Parser [Min a] #

FromJSON a => FromJSON (Max a) 

Methods

parseJSON :: Value -> Parser (Max a) #

parseJSONList :: Value -> Parser [Max a] #

FromJSON a => FromJSON (First a) 
FromJSON a => FromJSON (Last a) 
FromJSON a => FromJSON (WrappedMonoid a) 
FromJSON a => FromJSON (Option a) 
FromJSON a => FromJSON (NonEmpty a) 
FromJSON a => FromJSON (Identity a) 
FromJSON a => FromJSON (Dual a) 
FromJSON a => FromJSON (First a) 
FromJSON a => FromJSON (Last a) 
FromJSON a => FromJSON (IntMap a) 
FromJSON v => FromJSON (Tree v) 
FromJSON a => FromJSON (Seq a) 

Methods

parseJSON :: Value -> Parser (Seq a) #

parseJSONList :: Value -> Parser [Seq a] #

(Ord a, FromJSON a) => FromJSON (Set a) 

Methods

parseJSON :: Value -> Parser (Set a) #

parseJSONList :: Value -> Parser [Set a] #

(Eq a, Hashable a, FromJSON a) => FromJSON (HashSet a) 
FromJSON a => FromJSON (Vector a) 

Methods

parseJSON :: Value -> Parser (Vector a) #

parseJSONList :: Value -> Parser [Vector a] #

(Vector Vector a, FromJSON a) => FromJSON (Vector a) 

Methods

parseJSON :: Value -> Parser (Vector a) #

parseJSONList :: Value -> Parser [Vector a] #

(Prim a, FromJSON a) => FromJSON (Vector a) 

Methods

parseJSON :: Value -> Parser (Vector a) #

parseJSONList :: Value -> Parser [Vector a] #

(Storable a, FromJSON a) => FromJSON (Vector a) 

Methods

parseJSON :: Value -> Parser (Vector a) #

parseJSONList :: Value -> Parser [Vector a] #

FromJSON a => FromJSON (DList a) 

Methods

parseJSON :: Value -> Parser (DList a) #

parseJSONList :: Value -> Parser [DList a] #

(FromJSON a, FromJSON b) => FromJSON (Either a b) 

Methods

parseJSON :: Value -> Parser (Either a b) #

parseJSONList :: Value -> Parser [Either a b] #

(FromJSON a, FromJSON b) => FromJSON (a, b) 

Methods

parseJSON :: Value -> Parser (a, b) #

parseJSONList :: Value -> Parser [(a, b)] #

(FromJSON v, FromJSONKey k, Eq k, Hashable k) => FromJSON (HashMap k v) 
(FromJSONKey k, Ord k, FromJSON v) => FromJSON (Map k v) 

Methods

parseJSON :: Value -> Parser (Map k v) #

parseJSONList :: Value -> Parser [Map k v] #

FromJSON (Proxy k a) 

Methods

parseJSON :: Value -> Parser (Proxy k a) #

parseJSONList :: Value -> Parser [Proxy k a] #

(FromJSON a, FromJSON b, FromJSON c) => FromJSON (a, b, c) 

Methods

parseJSON :: Value -> Parser (a, b, c) #

parseJSONList :: Value -> Parser [(a, b, c)] #

FromJSON a => FromJSON (Const k a b) 

Methods

parseJSON :: Value -> Parser (Const k a b) #

parseJSONList :: Value -> Parser [Const k a b] #

FromJSON b => FromJSON (Tagged k a b) 

Methods

parseJSON :: Value -> Parser (Tagged k a b) #

parseJSONList :: Value -> Parser [Tagged k a b] #

(FromJSON a, FromJSON b, FromJSON c, FromJSON d) => FromJSON (a, b, c, d) 

Methods

parseJSON :: Value -> Parser (a, b, c, d) #

parseJSONList :: Value -> Parser [(a, b, c, d)] #

(FromJSON1 f, FromJSON1 g, FromJSON a) => FromJSON (Product * f g a) 

Methods

parseJSON :: Value -> Parser (Product * f g a) #

parseJSONList :: Value -> Parser [Product * f g a] #

(FromJSON1 f, FromJSON1 g, FromJSON a) => FromJSON (Sum * f g a) 

Methods

parseJSON :: Value -> Parser (Sum * f g a) #

parseJSONList :: Value -> Parser [Sum * f g a] #

(FromJSON a, FromJSON b, FromJSON c, FromJSON d, FromJSON e) => FromJSON (a, b, c, d, e) 

Methods

parseJSON :: Value -> Parser (a, b, c, d, e) #

parseJSONList :: Value -> Parser [(a, b, c, d, e)] #

(FromJSON1 f, FromJSON1 g, FromJSON a) => FromJSON (Compose * * f g a) 

Methods

parseJSON :: Value -> Parser (Compose * * f g a) #

parseJSONList :: Value -> Parser [Compose * * f g a] #

(FromJSON a, FromJSON b, FromJSON c, FromJSON d, FromJSON e, FromJSON f) => FromJSON (a, b, c, d, e, f) 

Methods

parseJSON :: Value -> Parser (a, b, c, d, e, f) #

parseJSONList :: Value -> Parser [(a, b, c, d, e, f)] #

(FromJSON a, FromJSON b, FromJSON c, FromJSON d, FromJSON e, FromJSON f, FromJSON g) => FromJSON (a, b, c, d, e, f, g) 

Methods

parseJSON :: Value -> Parser (a, b, c, d, e, f, g) #

parseJSONList :: Value -> Parser [(a, b, c, d, e, f, g)] #

(FromJSON a, FromJSON b, FromJSON c, FromJSON d, FromJSON e, FromJSON f, FromJSON g, FromJSON h) => FromJSON (a, b, c, d, e, f, g, h) 

Methods

parseJSON :: Value -> Parser (a, b, c, d, e, f, g, h) #

parseJSONList :: Value -> Parser [(a, b, c, d, e, f, g, h)] #

(FromJSON a, FromJSON b, FromJSON c, FromJSON d, FromJSON e, FromJSON f, FromJSON g, FromJSON h, FromJSON i) => FromJSON (a, b, c, d, e, f, g, h, i) 

Methods

parseJSON :: Value -> Parser (a, b, c, d, e, f, g, h, i) #

parseJSONList :: Value -> Parser [(a, b, c, d, e, f, g, h, i)] #

(FromJSON a, FromJSON b, FromJSON c, FromJSON d, FromJSON e, FromJSON f, FromJSON g, FromJSON h, FromJSON i, FromJSON j) => FromJSON (a, b, c, d, e, f, g, h, i, j) 

Methods

parseJSON :: Value -> Parser (a, b, c, d, e, f, g, h, i, j) #

parseJSONList :: Value -> Parser [(a, b, c, d, e, f, g, h, i, j)] #

(FromJSON a, FromJSON b, FromJSON c, FromJSON d, FromJSON e, FromJSON f, FromJSON g, FromJSON h, FromJSON i, FromJSON j, FromJSON k) => FromJSON (a, b, c, d, e, f, g, h, i, j, k) 

Methods

parseJSON :: Value -> Parser (a, b, c, d, e, f, g, h, i, j, k) #

parseJSONList :: Value -> Parser [(a, b, c, d, e, f, g, h, i, j, k)] #

(FromJSON a, FromJSON b, FromJSON c, FromJSON d, FromJSON e, FromJSON f, FromJSON g, FromJSON h, FromJSON i, FromJSON j, FromJSON k, FromJSON l) => FromJSON (a, b, c, d, e, f, g, h, i, j, k, l) 

Methods

parseJSON :: Value -> Parser (a, b, c, d, e, f, g, h, i, j, k, l) #

parseJSONList :: Value -> Parser [(a, b, c, d, e, f, g, h, i, j, k, l)] #

(FromJSON a, FromJSON b, FromJSON c, FromJSON d, FromJSON e, FromJSON f, FromJSON g, FromJSON h, FromJSON i, FromJSON j, FromJSON k, FromJSON l, FromJSON m) => FromJSON (a, b, c, d, e, f, g, h, i, j, k, l, m) 

Methods

parseJSON :: Value -> Parser (a, b, c, d, e, f, g, h, i, j, k, l, m) #

parseJSONList :: Value -> Parser [(a, b, c, d, e, f, g, h, i, j, k, l, m)] #

(FromJSON a, FromJSON b, FromJSON c, FromJSON d, FromJSON e, FromJSON f, FromJSON g, FromJSON h, FromJSON i, FromJSON j, FromJSON k, FromJSON l, FromJSON m, FromJSON n) => FromJSON (a, b, c, d, e, f, g, h, i, j, k, l, m, n) 

Methods

parseJSON :: Value -> Parser (a, b, c, d, e, f, g, h, i, j, k, l, m, n) #

parseJSONList :: Value -> Parser [(a, b, c, d, e, f, g, h, i, j, k, l, m, n)] #

(FromJSON a, FromJSON b, FromJSON c, FromJSON d, FromJSON e, FromJSON f, FromJSON g, FromJSON h, FromJSON i, FromJSON j, FromJSON k, FromJSON l, FromJSON m, FromJSON n, FromJSON o) => FromJSON (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) 

Methods

parseJSON :: Value -> Parser (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) #

parseJSONList :: Value -> Parser [(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)] #

Encoding/decoding

encodeFile :: ToJSON a => FilePath -> a -> IO () Source #

decodeFile :: FromJSON a => FilePath -> IO (Maybe a) Source #

Deprecated: Please use decodeFileEither, which does not confused type-directed and runtime exceptions.

Better error information

decodeEither' :: FromJSON a => ByteString -> Either ParseException a Source #

More helpful version of decodeEither which returns the YamlException.

Since 0.8.3

decodeFileEither :: FromJSON a => FilePath -> IO (Either ParseException a) Source #

A version of decodeFile which should not throw runtime exceptions.

Since 0.8.4

More control over decoding

decodeHelper :: FromJSON a => ConduitM () Event Parse () -> IO (Either ParseException (Either String a)) Source #