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

Safe HaskellNone
LanguageHaskell98

Data.Yaml.TH

Contents

Synopsis

Decoding

yamlQQ :: QuasiQuoter Source #

A QuasiQuoter for YAML.

Examples

{-# LANGUAGE QuasiQuotes #-}
import Data.Yaml.TH

value :: Value
value = [yamlQQ|
name: John Doe
age: 23
|]

Since: 0.8.28.0

decodeFile :: forall a. (Lift a, FromJSON a) => FilePath -> Q (TExp a) Source #

Decode a YAML file at compile time. Only available on GHC version 7.8.1 or higher.

Examples

{-# LANGUAGE TemplateHaskell #-}

config :: Config
config = $$(decodeFile "config.yaml")

Since: 0.8.19.0

Re-exports from Data.Yaml

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 #

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 #

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)] #