jsonnet-0.3.1.1: Jsonnet implementaton in pure Haskell
Copyright(c) 2020-2021 Alexandre Moreno
LicenseBSD-3-Clause OR Apache-2.0
MaintainerAlexandre Moreno <alexmorenocano@gmail.com>
Stabilityexperimental
Portabilitynon-portable
Safe HaskellNone
LanguageHaskell2010

Language.Jsonnet.Eval

Description

 
Synopsis

Documentation

splitArgs :: [Arg b1] -> [(Name a1, b2)] -> EvalM a2 ([(Name a1, b2)], [(Name a1, b1)], [(Name a1, b1)]) Source #

whnfField Source #

Arguments

:: Env

self object

-> CField 
-> Eval (Maybe (Text, VField)) 

mergeWith :: Object -> Object -> Eval Value Source #

Right-biased union of two objects, i.e. '{x : 1} + {x : 2} == {x : 2}' with OO-like self and super support via value recursion (knot-tying)

allM :: Monad m => (a -> m Bool) -> [a] -> m Bool Source #

liftF :: (HasValue a, HasValue b) => (a -> b) -> Value -> Eval Value Source #

liftF2 :: (HasValue a, HasValue b, HasValue c) => (a -> b -> c) -> Value -> Value -> Eval Value Source #

Orphan instances

HasValue Bool Source # 
Instance details

HasValue Double Source # 
Instance details

Integral a => HasValue a Source # 
Instance details

Methods

inj :: a -> Value Source #

proj :: Value -> Eval a Source #

HasValue ByteString Source # 
Instance details

HasValue Scientific Source # 
Instance details

HasValue Text Source # 
Instance details

HasValue Object Source # 
Instance details

HasValue [Char] Source # 
Instance details

Methods

inj :: [Char] -> Value Source #

proj :: Value -> Eval [Char] Source #

HasValue a => HasValue [a] Source # 
Instance details

Methods

inj :: [a] -> Value Source #

proj :: Value -> Eval [a] Source #

HasValue a => HasValue (Maybe a) Source # 
Instance details

Methods

inj :: Maybe a -> Value Source #

proj :: Value -> Eval (Maybe a) Source #

HasValue a => HasValue (Vector a) Source # 
Instance details

Methods

inj :: Vector a -> Value Source #

proj :: Value -> Eval (Vector a) Source #

(HasValue a, HasValue b, HasValue c) => HasValue (a -> b -> Eval c) Source # 
Instance details

Methods

inj :: (a -> b -> Eval c) -> Value Source #

proj :: Value -> Eval (a -> b -> Eval c) Source #

(HasValue a, HasValue b) => HasValue (a -> Eval b) Source # 
Instance details

Methods

inj :: (a -> Eval b) -> Value Source #

proj :: Value -> Eval (a -> Eval b) Source #

(HasValue a, HasValue b, HasValue c) => HasValue (a -> b -> c) Source # 
Instance details

Methods

inj :: (a -> b -> c) -> Value Source #

proj :: Value -> Eval (a -> b -> c) Source #

(HasValue a, HasValue b) => HasValue (a -> b) Source # 
Instance details

Methods

inj :: (a -> b) -> Value Source #

proj :: Value -> Eval (a -> b) Source #