-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Jsonnet implementaton in pure Haskell
--
-- Please see the README on GitHub at
-- https://github.com/moleike/jsonnet-haskell#readme
@package jsonnet
@version 0.1.0.0
module Language.Jsonnet.Annotate
-- | Annotated trees, based on fixplate
type AnnF f a = Product (Const a) f
type Ann f a = Fix (AnnF f a)
pattern AnnF :: forall {a1} {g} {a2}. g a2 -> a1 -> Product (Const a1 :: Type -> Type) g a2
annMap :: Functor f => (a -> b) -> Ann f a -> Ann f b
forget :: Functor f => Ann f a -> Fix f
attrib :: Ann f a -> a
inherit :: Functor f => (Fix f -> a -> (b, a)) -> a -> Fix f -> Ann f b
annZip :: Functor f => Fix (AnnF (AnnF f a) b) -> Ann f (a, b)
module Language.Jsonnet.Parser.SrcSpan
data SrcSpan
SrcSpan :: SourcePos -> SourcePos -> SrcSpan
[spanBegin] :: SrcSpan -> SourcePos
[spanEnd] :: SrcSpan -> SourcePos
class HasSrcSpan a
srcSpan :: HasSrcSpan a => a -> SrcSpan
instance Language.Jsonnet.Parser.SrcSpan.HasSrcSpan Language.Jsonnet.Parser.SrcSpan.SrcSpan
instance Unbound.Generics.LocallyNameless.Alpha.Alpha Language.Jsonnet.Parser.SrcSpan.SrcSpan
instance Unbound.Generics.LocallyNameless.Subst.Subst b Language.Jsonnet.Parser.SrcSpan.SrcSpan
instance GHC.Base.Semigroup Language.Jsonnet.Parser.SrcSpan.SrcSpan
instance Data.Data.Data Language.Jsonnet.Parser.SrcSpan.SrcSpan
instance GHC.Generics.Generic Language.Jsonnet.Parser.SrcSpan.SrcSpan
instance GHC.Read.Read Language.Jsonnet.Parser.SrcSpan.SrcSpan
instance GHC.Show.Show Language.Jsonnet.Parser.SrcSpan.SrcSpan
instance GHC.Classes.Eq Language.Jsonnet.Parser.SrcSpan.SrcSpan
instance GHC.Classes.Ord Language.Jsonnet.Parser.SrcSpan.SrcSpan
module Language.Jsonnet.Common
data Literal
Null :: Literal
Bool :: Bool -> Literal
String :: Text -> Literal
Number :: Scientific -> Literal
data BinOp
Arith :: ArithOp -> BinOp
Comp :: CompOp -> BinOp
Bitwise :: BitwiseOp -> BinOp
Logical :: LogicalOp -> BinOp
In :: BinOp
data UnyOp
Compl :: UnyOp
LNot :: UnyOp
Plus :: UnyOp
Minus :: UnyOp
data ArithOp
Add :: ArithOp
Sub :: ArithOp
Mul :: ArithOp
Div :: ArithOp
Mod :: ArithOp
data CompOp
Lt :: CompOp
Le :: CompOp
Gt :: CompOp
Ge :: CompOp
Eq :: CompOp
Ne :: CompOp
data BitwiseOp
And :: BitwiseOp
Or :: BitwiseOp
Xor :: BitwiseOp
ShiftL :: BitwiseOp
ShiftR :: BitwiseOp
data LogicalOp
LAnd :: LogicalOp
LOr :: LogicalOp
data Strictness
Strict :: Strictness
Lazy :: Strictness
data Arg a
Pos :: a -> Arg a
Named :: String -> a -> Arg a
data Args a
Args :: [Arg a] -> Strictness -> Args a
[args] :: Args a -> [Arg a]
[strictness] :: Args a -> Strictness
data Assert a
Assert :: a -> Maybe a -> a -> Assert a
[cond] :: Assert a -> a
[msg] :: Assert a -> Maybe a
[expr] :: Assert a -> a
data CompSpec a
CompSpec :: String -> a -> Maybe a -> CompSpec a
[var] :: CompSpec a -> String
[forspec] :: CompSpec a -> a
[ifspec] :: CompSpec a -> Maybe a
data StackFrame a
StackFrame :: Maybe (Name a) -> SrcSpan -> StackFrame a
[name] :: StackFrame a -> Maybe (Name a)
[span] :: StackFrame a -> SrcSpan
pushStackFrame :: StackFrame a -> Backtrace a -> Backtrace a
data Backtrace a
Backtrace :: [StackFrame a] -> Backtrace a
data Visibility
Visible :: Visibility
Hidden :: Visibility
Forced :: Visibility
class HasVisibility a
visible :: HasVisibility a => a -> Bool
forced :: HasVisibility a => a -> Bool
hidden :: HasVisibility a => a -> Bool
data Hideable a
Hideable :: a -> Visibility -> Hideable a
instance GHC.Show.Show (Language.Jsonnet.Common.StackFrame a)
instance GHC.Classes.Eq (Language.Jsonnet.Common.StackFrame a)
instance GHC.Show.Show (Language.Jsonnet.Common.Backtrace a)
instance GHC.Classes.Eq (Language.Jsonnet.Common.Backtrace a)
instance Data.Data.Data Language.Jsonnet.Common.Visibility
instance GHC.Generics.Generic Language.Jsonnet.Common.Visibility
instance GHC.Show.Show Language.Jsonnet.Common.Visibility
instance GHC.Read.Read Language.Jsonnet.Common.Visibility
instance GHC.Classes.Eq Language.Jsonnet.Common.Visibility
instance Data.Data.Data a => Data.Data.Data (Language.Jsonnet.Common.Hideable a)
instance GHC.Base.Functor Language.Jsonnet.Common.Hideable
instance GHC.Generics.Generic (Language.Jsonnet.Common.Hideable a)
instance GHC.Show.Show a => GHC.Show.Show (Language.Jsonnet.Common.Hideable a)
instance GHC.Read.Read a => GHC.Read.Read (Language.Jsonnet.Common.Hideable a)
instance GHC.Classes.Eq a => GHC.Classes.Eq (Language.Jsonnet.Common.Hideable a)
instance Unbound.Generics.LocallyNameless.Alpha.Alpha a => Unbound.Generics.LocallyNameless.Alpha.Alpha (Language.Jsonnet.Common.Hideable a)
instance Language.Jsonnet.Common.HasVisibility (Language.Jsonnet.Common.Hideable a)
instance Unbound.Generics.LocallyNameless.Alpha.Alpha Language.Jsonnet.Common.Visibility
instance Data.Functor.Classes.Show1 Language.Jsonnet.Common.CompSpec
instance Unbound.Generics.LocallyNameless.Alpha.Alpha a => Unbound.Generics.LocallyNameless.Alpha.Alpha (Language.Jsonnet.Common.CompSpec a)
instance Data.Traversable.Traversable Language.Jsonnet.Common.CompSpec
instance Data.Foldable.Foldable Language.Jsonnet.Common.CompSpec
instance GHC.Base.Functor Language.Jsonnet.Common.CompSpec
instance GHC.Generics.Generic (Language.Jsonnet.Common.CompSpec a)
instance Data.Data.Data a => Data.Data.Data (Language.Jsonnet.Common.CompSpec a)
instance GHC.Show.Show a => GHC.Show.Show (Language.Jsonnet.Common.CompSpec a)
instance GHC.Read.Read a => GHC.Read.Read (Language.Jsonnet.Common.CompSpec a)
instance GHC.Classes.Eq a => GHC.Classes.Eq (Language.Jsonnet.Common.CompSpec a)
instance Data.Functor.Classes.Show1 Language.Jsonnet.Common.Assert
instance Data.Traversable.Traversable Language.Jsonnet.Common.Assert
instance Data.Foldable.Foldable Language.Jsonnet.Common.Assert
instance GHC.Base.Functor Language.Jsonnet.Common.Assert
instance GHC.Generics.Generic (Language.Jsonnet.Common.Assert a)
instance Data.Data.Data a => Data.Data.Data (Language.Jsonnet.Common.Assert a)
instance GHC.Show.Show a => GHC.Show.Show (Language.Jsonnet.Common.Assert a)
instance GHC.Read.Read a => GHC.Read.Read (Language.Jsonnet.Common.Assert a)
instance GHC.Classes.Eq a => GHC.Classes.Eq (Language.Jsonnet.Common.Assert a)
instance Unbound.Generics.LocallyNameless.Alpha.Alpha a => Unbound.Generics.LocallyNameless.Alpha.Alpha (Language.Jsonnet.Common.Assert a)
instance Data.Functor.Classes.Show1 Language.Jsonnet.Common.Args
instance Unbound.Generics.LocallyNameless.Alpha.Alpha a => Unbound.Generics.LocallyNameless.Alpha.Alpha (Language.Jsonnet.Common.Args a)
instance Data.Traversable.Traversable Language.Jsonnet.Common.Args
instance Data.Foldable.Foldable Language.Jsonnet.Common.Args
instance GHC.Base.Functor Language.Jsonnet.Common.Args
instance GHC.Generics.Generic (Language.Jsonnet.Common.Args a)
instance Data.Data.Data a => Data.Data.Data (Language.Jsonnet.Common.Args a)
instance GHC.Show.Show a => GHC.Show.Show (Language.Jsonnet.Common.Args a)
instance GHC.Read.Read a => GHC.Read.Read (Language.Jsonnet.Common.Args a)
instance GHC.Classes.Eq a => GHC.Classes.Eq (Language.Jsonnet.Common.Args a)
instance Data.Functor.Classes.Show1 Language.Jsonnet.Common.Arg
instance Unbound.Generics.LocallyNameless.Alpha.Alpha a => Unbound.Generics.LocallyNameless.Alpha.Alpha (Language.Jsonnet.Common.Arg a)
instance Data.Data.Data Language.Jsonnet.Common.UnyOp
instance GHC.Generics.Generic Language.Jsonnet.Common.UnyOp
instance GHC.Enum.Bounded Language.Jsonnet.Common.UnyOp
instance GHC.Enum.Enum Language.Jsonnet.Common.UnyOp
instance GHC.Classes.Eq Language.Jsonnet.Common.UnyOp
instance GHC.Show.Show Language.Jsonnet.Common.UnyOp
instance Data.Data.Data Language.Jsonnet.Common.ArithOp
instance GHC.Generics.Generic Language.Jsonnet.Common.ArithOp
instance GHC.Enum.Bounded Language.Jsonnet.Common.ArithOp
instance GHC.Enum.Enum Language.Jsonnet.Common.ArithOp
instance GHC.Classes.Eq Language.Jsonnet.Common.ArithOp
instance GHC.Show.Show Language.Jsonnet.Common.ArithOp
instance Data.Data.Data Language.Jsonnet.Common.CompOp
instance GHC.Generics.Generic Language.Jsonnet.Common.CompOp
instance GHC.Enum.Bounded Language.Jsonnet.Common.CompOp
instance GHC.Enum.Enum Language.Jsonnet.Common.CompOp
instance GHC.Classes.Eq Language.Jsonnet.Common.CompOp
instance GHC.Show.Show Language.Jsonnet.Common.CompOp
instance Data.Data.Data Language.Jsonnet.Common.BitwiseOp
instance GHC.Generics.Generic Language.Jsonnet.Common.BitwiseOp
instance GHC.Enum.Bounded Language.Jsonnet.Common.BitwiseOp
instance GHC.Enum.Enum Language.Jsonnet.Common.BitwiseOp
instance GHC.Classes.Eq Language.Jsonnet.Common.BitwiseOp
instance GHC.Show.Show Language.Jsonnet.Common.BitwiseOp
instance Data.Data.Data Language.Jsonnet.Common.LogicalOp
instance GHC.Generics.Generic Language.Jsonnet.Common.LogicalOp
instance GHC.Enum.Bounded Language.Jsonnet.Common.LogicalOp
instance GHC.Enum.Enum Language.Jsonnet.Common.LogicalOp
instance GHC.Classes.Eq Language.Jsonnet.Common.LogicalOp
instance GHC.Show.Show Language.Jsonnet.Common.LogicalOp
instance Data.Data.Data Language.Jsonnet.Common.BinOp
instance GHC.Generics.Generic Language.Jsonnet.Common.BinOp
instance GHC.Classes.Eq Language.Jsonnet.Common.BinOp
instance GHC.Show.Show Language.Jsonnet.Common.BinOp
instance Data.Data.Data Language.Jsonnet.Common.Strictness
instance GHC.Generics.Generic Language.Jsonnet.Common.Strictness
instance GHC.Show.Show Language.Jsonnet.Common.Strictness
instance GHC.Read.Read Language.Jsonnet.Common.Strictness
instance GHC.Classes.Eq Language.Jsonnet.Common.Strictness
instance Data.Traversable.Traversable Language.Jsonnet.Common.Arg
instance Data.Foldable.Foldable Language.Jsonnet.Common.Arg
instance GHC.Base.Functor Language.Jsonnet.Common.Arg
instance GHC.Generics.Generic1 Language.Jsonnet.Common.Arg
instance GHC.Generics.Generic (Language.Jsonnet.Common.Arg a)
instance Data.Data.Data a => Data.Data.Data (Language.Jsonnet.Common.Arg a)
instance GHC.Show.Show a => GHC.Show.Show (Language.Jsonnet.Common.Arg a)
instance GHC.Read.Read a => GHC.Read.Read (Language.Jsonnet.Common.Arg a)
instance GHC.Classes.Eq a => GHC.Classes.Eq (Language.Jsonnet.Common.Arg a)
instance Unbound.Generics.LocallyNameless.Alpha.Alpha Language.Jsonnet.Common.Strictness
instance Unbound.Generics.LocallyNameless.Alpha.Alpha Language.Jsonnet.Common.BinOp
instance Unbound.Generics.LocallyNameless.Alpha.Alpha Language.Jsonnet.Common.LogicalOp
instance Unbound.Generics.LocallyNameless.Alpha.Alpha Language.Jsonnet.Common.BitwiseOp
instance Unbound.Generics.LocallyNameless.Alpha.Alpha Language.Jsonnet.Common.CompOp
instance Unbound.Generics.LocallyNameless.Alpha.Alpha Language.Jsonnet.Common.ArithOp
instance Unbound.Generics.LocallyNameless.Alpha.Alpha Language.Jsonnet.Common.UnyOp
instance Unbound.Generics.LocallyNameless.Alpha.Alpha Language.Jsonnet.Common.Literal
instance Unbound.Generics.LocallyNameless.Subst.Subst a Language.Jsonnet.Common.Literal
instance Data.Data.Data Language.Jsonnet.Common.Literal
instance GHC.Generics.Generic Language.Jsonnet.Common.Literal
instance GHC.Classes.Ord Language.Jsonnet.Common.Literal
instance GHC.Classes.Eq Language.Jsonnet.Common.Literal
instance GHC.Show.Show Language.Jsonnet.Common.Literal
module Language.Jsonnet.Core
type Param a = (Name a, Embed (Maybe a))
data KeyValue a
KeyValue :: a -> Hideable a -> KeyValue a
newtype Fun
Fun :: Bind (Rec [Param Core]) Core -> Fun
newtype Let
Let :: Bind (Rec [(Name Core, Embed Core)]) Core -> Let
data Comp
ArrC :: Bind (Name Core) (Core, Maybe Core) -> Comp
ObjC :: Bind (Name Core) (KeyValue Core, Maybe Core) -> Comp
data Core
CLoc :: SrcSpan -> Core -> Core
CLit :: Literal -> Core
CVar :: Name Core -> Core
CFun :: Fun -> Core
CApp :: Core -> Args Core -> Core
CLet :: Let -> Core
CObj :: [KeyValue Core] -> Core
CArr :: [Core] -> Core
CBinOp :: BinOp -> Core -> Core -> Core
CUnyOp :: UnyOp -> Core -> Core
CIfElse :: Core -> Core -> Core -> Core
CErr :: Core -> Core
CLookup :: Core -> Core -> Core
CComp :: Comp -> Core -> Core
instance GHC.Generics.Generic (Language.Jsonnet.Core.KeyValue a)
instance GHC.Show.Show a => GHC.Show.Show (Language.Jsonnet.Core.KeyValue a)
instance GHC.Generics.Generic Language.Jsonnet.Core.Fun
instance GHC.Show.Show Language.Jsonnet.Core.Fun
instance GHC.Generics.Generic Language.Jsonnet.Core.Let
instance GHC.Show.Show Language.Jsonnet.Core.Let
instance GHC.Generics.Generic Language.Jsonnet.Core.Comp
instance GHC.Show.Show Language.Jsonnet.Core.Comp
instance GHC.Generics.Generic Language.Jsonnet.Core.Core
instance GHC.Show.Show Language.Jsonnet.Core.Core
instance Unbound.Generics.LocallyNameless.Alpha.Alpha Language.Jsonnet.Core.Fun
instance Unbound.Generics.LocallyNameless.Alpha.Alpha Language.Jsonnet.Core.Let
instance Unbound.Generics.LocallyNameless.Alpha.Alpha Language.Jsonnet.Core.Comp
instance Unbound.Generics.LocallyNameless.Alpha.Alpha Language.Jsonnet.Core.Core
instance Data.String.IsString (Unbound.Generics.LocallyNameless.Name.Name Language.Jsonnet.Core.Core)
instance Unbound.Generics.LocallyNameless.Alpha.Alpha a => Unbound.Generics.LocallyNameless.Alpha.Alpha (Language.Jsonnet.Core.KeyValue a)
module Language.Jsonnet.Error
data Error
ParserError :: ParserError -> Error
CheckError :: CheckError -> Maybe SrcSpan -> Error
EvalError :: EvalError -> Backtrace Core -> Error
data EvalError
TypeMismatch :: Text -> Text -> EvalError
[expected] :: EvalError -> Text
[actual] :: EvalError -> Text
InvalidKey :: Doc -> EvalError
DuplicateKey :: Doc -> EvalError
NoSuchKey :: Doc -> EvalError
InvalidIndex :: Doc -> EvalError
IndexOutOfBounds :: Scientific -> EvalError
DivByZero :: EvalError
VarNotFound :: Doc -> EvalError
AssertionFailed :: Doc -> EvalError
TooManyArgs :: Int -> EvalError
ParamNotBound :: Doc -> EvalError
BadParam :: Doc -> EvalError
StdError :: Doc -> EvalError
RuntimeError :: Doc -> EvalError
ManifestError :: Doc -> EvalError
data ParserError
ParseError :: ParseErrorBundle Text Void -> ParserError
ImportError :: IOError -> Maybe SrcSpan -> ParserError
data CheckError
DuplicateParam :: String -> CheckError
PosAfterNamedParam :: CheckError
DuplicateBinding :: String -> CheckError
instance GHC.Show.Show Language.Jsonnet.Error.EvalError
instance GHC.Show.Show Language.Jsonnet.Error.ParserError
instance GHC.Classes.Eq Language.Jsonnet.Error.ParserError
instance GHC.Show.Show Language.Jsonnet.Error.CheckError
instance GHC.Show.Show Language.Jsonnet.Error.Error
module Language.Jsonnet.Pretty
ppNumber :: Scientific -> Doc
ppJson :: Int -> Value -> Doc
instance Text.PrettyPrint.ANSI.Leijen.Internal.Pretty (Unbound.Generics.LocallyNameless.Name.Name a)
instance Text.PrettyPrint.ANSI.Leijen.Internal.Pretty Data.Text.Internal.Text
instance Text.PrettyPrint.ANSI.Leijen.Internal.Pretty Data.Aeson.Types.Internal.Value
instance Text.PrettyPrint.ANSI.Leijen.Internal.Pretty Language.Jsonnet.Parser.SrcSpan.SrcSpan
instance Text.PrettyPrint.ANSI.Leijen.Internal.Pretty Language.Jsonnet.Error.ParserError
instance Text.PrettyPrint.ANSI.Leijen.Internal.Pretty Language.Jsonnet.Error.CheckError
instance Text.PrettyPrint.ANSI.Leijen.Internal.Pretty Language.Jsonnet.Error.EvalError
instance Text.PrettyPrint.ANSI.Leijen.Internal.Pretty (Language.Jsonnet.Common.StackFrame a)
instance Text.PrettyPrint.ANSI.Leijen.Internal.Pretty (Language.Jsonnet.Common.Backtrace a)
instance Text.PrettyPrint.ANSI.Leijen.Internal.Pretty Language.Jsonnet.Error.Error
module Language.Jsonnet.Syntax
type Ident = String
type Param a = (Ident, Maybe a)
data Field a
Field :: a -> a -> Visibility -> Bool -> Field a
[key] :: Field a -> a
[value] :: Field a -> a
[visibility] :: Field a -> Visibility
[override] :: Field a -> Bool
data ExprF a
ELit :: Literal -> ExprF a
EIdent :: Ident -> ExprF a
EFun :: [Param a] -> a -> ExprF a
EApply :: a -> Args a -> ExprF a
ELocal :: NonEmpty (Ident, a) -> a -> ExprF a
[bnds] :: ExprF a -> NonEmpty (Ident, a)
[expr] :: ExprF a -> a
EObj :: [(Ident, a)] -> [Field a] -> ExprF a
[locals] :: ExprF a -> [(Ident, a)]
[fields] :: ExprF a -> [Field a]
EArr :: [a] -> ExprF a
EErr :: a -> ExprF a
ELookup :: a -> a -> ExprF a
EIndex :: a -> a -> ExprF a
EAssert :: Assert a -> ExprF a
EIf :: a -> a -> ExprF a
EIfElse :: a -> a -> a -> ExprF a
ESlice :: a -> Maybe a -> Maybe a -> Maybe a -> ExprF a
[expr] :: ExprF a -> a
[start] :: ExprF a -> Maybe a
[end] :: ExprF a -> Maybe a
[step] :: ExprF a -> Maybe a
EBinOp :: BinOp -> a -> a -> ExprF a
EUnyOp :: UnyOp -> a -> ExprF a
EArrComp :: a -> NonEmpty (CompSpec a) -> ExprF a
[expr] :: ExprF a -> a
[comp] :: ExprF a -> NonEmpty (CompSpec a)
EObjComp :: Field a -> [(Ident, a)] -> NonEmpty (CompSpec a) -> ExprF a
[field] :: ExprF a -> Field a
[locals] :: ExprF a -> [(Ident, a)]
[comp] :: ExprF a -> NonEmpty (CompSpec a)
newtype Import
Import :: FilePath -> Import
type ExprF' = Sum ExprF (Const Import)
mkImportF :: String -> ExprF' a
mkNullF :: ExprF' a
mkIntF :: Integral b => b -> ExprF' a
mkFloatF :: Scientific -> ExprF' a
mkStrF :: String -> ExprF' a
mkBoolF :: Bool -> ExprF' a
mkIdentF :: Ident -> ExprF' a
mkFunF :: [Param a] -> a -> ExprF' a
mkApplyF :: a -> Args a -> ExprF' a
mkIfF :: a -> a -> ExprF' a
mkIfElseF :: a -> a -> a -> ExprF' a
mkLocalF :: NonEmpty (Ident, a) -> a -> ExprF' a
mkLookupF :: a -> a -> ExprF' a
mkIndexF :: a -> a -> ExprF' a
mkSliceF :: a -> Maybe a -> Maybe a -> Maybe a -> ExprF' a
mkObjectF :: [Field a] -> [(Ident, a)] -> ExprF' a
mkArrayF :: [a] -> ExprF' a
mkErrorF :: a -> ExprF' a
mkAssertF :: a -> Maybe a -> a -> ExprF' a
mkArrCompF :: a -> NonEmpty (CompSpec a) -> ExprF' a
mkObjCompF :: Field a -> [(Ident, a)] -> NonEmpty (CompSpec a) -> ExprF' a
instance GHC.Classes.Eq Language.Jsonnet.Syntax.Import
instance GHC.Show.Show Language.Jsonnet.Syntax.Import
instance Data.Functor.Classes.Show1 Language.Jsonnet.Syntax.ExprF
instance Data.Data.Data a => Data.Data.Data (Language.Jsonnet.Syntax.ExprF a)
instance GHC.Generics.Generic (Language.Jsonnet.Syntax.ExprF a)
instance Data.Traversable.Traversable Language.Jsonnet.Syntax.ExprF
instance Data.Foldable.Foldable Language.Jsonnet.Syntax.ExprF
instance GHC.Base.Functor Language.Jsonnet.Syntax.ExprF
instance GHC.Show.Show a => GHC.Show.Show (Language.Jsonnet.Syntax.ExprF a)
instance Data.Functor.Classes.Show1 Language.Jsonnet.Syntax.Field
instance Data.Traversable.Traversable Language.Jsonnet.Syntax.Field
instance Data.Foldable.Foldable Language.Jsonnet.Syntax.Field
instance GHC.Base.Functor Language.Jsonnet.Syntax.Field
instance GHC.Generics.Generic (Language.Jsonnet.Syntax.Field a)
instance Data.Data.Data a => Data.Data.Data (Language.Jsonnet.Syntax.Field a)
instance GHC.Show.Show a => GHC.Show.Show (Language.Jsonnet.Syntax.Field a)
instance GHC.Read.Read a => GHC.Read.Read (Language.Jsonnet.Syntax.Field a)
instance GHC.Classes.Eq a => GHC.Classes.Eq (Language.Jsonnet.Syntax.Field a)
instance Unbound.Generics.LocallyNameless.Alpha.Alpha a => Unbound.Generics.LocallyNameless.Alpha.Alpha (Language.Jsonnet.Syntax.Field a)
module Language.Jsonnet.Desugar
desugar :: Desugarer a => a -> Core
instance Language.Jsonnet.Desugar.Desugarer (Language.Jsonnet.Annotate.Ann Language.Jsonnet.Syntax.ExprF ())
instance Language.Jsonnet.Desugar.Desugarer (Language.Jsonnet.Annotate.Ann Language.Jsonnet.Syntax.ExprF Language.Jsonnet.Parser.SrcSpan.SrcSpan)
module Language.Jsonnet.Check
type Check = ExceptT Error IO
check :: Ann ExprF SrcSpan -> Check ()
module Language.Jsonnet.Syntax.Annotated
type Expr = Ann ExprF SrcSpan
type Expr' = Ann ExprF' SrcSpan
mkApply :: Expr' -> Args Expr' -> Expr'
mkLookup :: Expr' -> Expr' -> Expr'
mkIndex :: Expr' -> Expr' -> Expr'
mkSlice :: Maybe Expr' -> Maybe Expr' -> Maybe Expr' -> Expr' -> Expr'
mkBinOp :: BinOp -> Expr' -> Expr' -> Expr'
mkUnyOp :: UnyOp -> Expr' -> Expr'
module Language.Jsonnet.Parser
type Parser = Parsec Void Text
parse :: MonadError Error m => FilePath -> Text -> m Expr'
resolveImports :: (MonadError Error m, MonadIO m) => FilePath -> Expr' -> m Expr
sc :: Parser ()
symbol :: Text -> Parser Text
lexeme :: Parser a -> Parser a
braces :: Parser a -> Parser a
brackets :: Parser a -> Parser a
parens :: Parser a -> Parser a
comma :: Parser Text
colon :: Parser Text
annotateLoc :: Parser (f a) -> Parser (AnnF f SrcSpan a)
identifier :: Parser String
keywordP :: Text -> Parser Text
stringLiteral :: Parser String
escapeAscii :: Parser Char
escapeUnicode :: Parser Char
verbatimString :: Parser String
textBlock :: Parser String
unquoted :: Parser Expr'
stringP :: Parser Expr'
numberP :: Parser Expr'
identP :: Parser Expr'
booleanP :: Parser Expr'
nullP :: Parser Expr'
errorP :: Parser Expr'
assertP :: Parser Expr'
ifElseP :: Parser Expr'
paramsP :: Parser [Param Expr']
function :: Parser [Param Expr'] -> Parser Expr' -> Parser Expr'
functionP :: Parser Expr'
forspecP :: Parser (CompSpec Expr')
binding :: Parser (String, Expr')
localFunc :: Parser (String, Expr')
localBndsP :: Parser (NonEmpty (String, Expr'))
localP :: Parser Expr'
arrayP :: Parser Expr'
objectP :: Parser Expr'
importP :: Parser Expr'
binary :: Text -> (Expr' -> Expr' -> Expr') -> Operator Parser Expr'
prefix :: Text -> (Expr' -> Expr') -> Operator Parser Expr'
-- | associativity and operator precedence 1. e(...)
-- e[...] e.f (application and indexing) 2. +
-- - ! ~ (the unary operators) 3. *
-- / % (these, and the remainder below, are binary
-- operators) 4. + - 5. <<
-- >> 6. < > <=
-- >= in 7. == != 8.
-- & 9. ^ 10. | 11. &&
-- 12. || default is associate to the left
opTable :: [[Operator Parser Expr']]
-- | shorthand syntax for object composition: when the right-hand side is
-- an object literal the + operator can be elided.
postfixObjectMerge :: Parser (Expr' -> Expr')
-- | application, indexing and lookup: e(...) e[...] e.f all have the same
-- precedence (the highest)
postfixOperators :: Parser (Expr' -> Expr')
indexP :: Parser (Expr' -> Expr')
lookupP :: Parser (Expr' -> Expr')
applyP :: Parser (Expr' -> Expr')
sliceP :: Parser (Expr' -> Expr')
primP :: Parser Expr'
exprP :: Parser Expr'
reservedKeywords :: [String]
module Language.Jsonnet.TH
liftText :: Text -> Q Exp
liftDataWithText :: Data a => a -> Q Exp
parse :: FilePath -> Text -> Q Exp
instance Data.Data.Data a => Language.Haskell.TH.Syntax.Lift (Language.Jsonnet.Common.Arg a)
instance Data.Data.Data a => Language.Haskell.TH.Syntax.Lift (Language.Jsonnet.Common.Hideable a)
instance Language.Haskell.TH.Syntax.Lift Language.Jsonnet.Parser.SrcSpan.SrcSpan
instance Language.Haskell.TH.Syntax.Lift Language.Jsonnet.Common.Visibility
instance Data.Data.Data a => Language.Haskell.TH.Syntax.Lift (Language.Jsonnet.Common.Args a)
instance Language.Haskell.TH.Syntax.Lift Language.Jsonnet.Common.Strictness
instance Language.Haskell.TH.Syntax.Lift Language.Jsonnet.Common.Literal
instance Language.Haskell.TH.Syntax.Lift Data.Scientific.Scientific
instance Language.Haskell.TH.Syntax.Lift Language.Jsonnet.Common.BinOp
instance Language.Haskell.TH.Syntax.Lift Language.Jsonnet.Common.ArithOp
instance Language.Haskell.TH.Syntax.Lift Language.Jsonnet.Common.CompOp
instance Language.Haskell.TH.Syntax.Lift Language.Jsonnet.Common.BitwiseOp
instance Language.Haskell.TH.Syntax.Lift Language.Jsonnet.Common.LogicalOp
instance Language.Haskell.TH.Syntax.Lift Language.Jsonnet.Common.UnyOp
instance Data.Data.Data a => Language.Haskell.TH.Syntax.Lift (Language.Jsonnet.Syntax.Field a)
instance Data.Data.Data a => Language.Haskell.TH.Syntax.Lift (Language.Jsonnet.Common.Assert a)
instance Data.Data.Data a => Language.Haskell.TH.Syntax.Lift (Language.Jsonnet.Common.CompSpec a)
instance Data.Data.Data a => Language.Haskell.TH.Syntax.Lift (Language.Jsonnet.Syntax.ExprF a)
instance (Data.Typeable.Internal.Typeable a, Data.Typeable.Internal.Typeable f, Data.Typeable.Internal.Typeable g, Data.Data.Data (f a), Data.Data.Data (g a)) => Language.Haskell.TH.Syntax.Lift (Data.Functor.Product.Product f g a)
instance Language.Haskell.TH.Syntax.Lift Language.Jsonnet.Syntax.Annotated.Expr
module Language.Jsonnet.Std.TH
stdlibPath :: String
mkStdlib :: Q Exp
module Language.Jsonnet.TH.QQ
jsonnet :: QuasiQuoter
module Language.Jsonnet.Eval.Monad
newtype Eval a
Eval :: ExceptT Error (RWST Env () EvalState (FreshMT IO)) a -> Eval a
[unEval] :: Eval a -> ExceptT Error (RWST Env () EvalState (FreshMT IO)) a
type Ctx = Map (Name Core) Thunk
extendCtx :: Ctx -> Eval a -> Eval a
pushScope :: Name Core -> Eval a -> Eval a
pushSpan :: Maybe SrcSpan -> Eval a -> Eval a
withCtx :: Ctx -> Eval a -> Eval a
data Env
Env :: Ctx -> [Maybe SrcSpan] -> [Maybe (Name Core)] -> Env
[ctx] :: Env -> Ctx
[spans] :: Env -> [Maybe SrcSpan]
[scopes] :: Env -> [Maybe (Name Core)]
withEnv :: Env -> Eval a -> Eval a
emptyEnv :: Env
data EvalState
EvalState :: Maybe SrcSpan -> EvalState
[currentPos] :: EvalState -> Maybe SrcSpan
emptyState :: EvalState
getBacktrace :: Eval (Backtrace Core)
throwE :: EvalError -> Eval a
runEval :: Env -> Eval a -> ExceptT Error IO a
instance GHC.Generics.Generic (Language.Jsonnet.Eval.Monad.Eval a)
instance Unbound.Generics.LocallyNameless.Fresh.Fresh Language.Jsonnet.Eval.Monad.Eval
instance Control.Monad.Fail.MonadFail Language.Jsonnet.Eval.Monad.Eval
instance Control.Monad.Catch.MonadMask Language.Jsonnet.Eval.Monad.Eval
instance Control.Monad.Catch.MonadCatch Language.Jsonnet.Eval.Monad.Eval
instance Control.Monad.Catch.MonadThrow Language.Jsonnet.Eval.Monad.Eval
instance Control.Monad.State.Class.MonadState Language.Jsonnet.Eval.Monad.EvalState Language.Jsonnet.Eval.Monad.Eval
instance Control.Monad.Error.Class.MonadError Language.Jsonnet.Error.Error Language.Jsonnet.Eval.Monad.Eval
instance Control.Monad.Reader.Class.MonadReader Language.Jsonnet.Eval.Monad.Env Language.Jsonnet.Eval.Monad.Eval
instance Control.Monad.Writer.Class.MonadWriter () Language.Jsonnet.Eval.Monad.Eval
instance Control.Monad.Fix.MonadFix Language.Jsonnet.Eval.Monad.Eval
instance Control.Monad.IO.Class.MonadIO Language.Jsonnet.Eval.Monad.Eval
instance GHC.Base.Monad Language.Jsonnet.Eval.Monad.Eval
instance GHC.Base.Applicative Language.Jsonnet.Eval.Monad.Eval
instance GHC.Base.Functor Language.Jsonnet.Eval.Monad.Eval
instance (GHC.Base.Monoid w, Unbound.Generics.LocallyNameless.Fresh.Fresh m) => Unbound.Generics.LocallyNameless.Fresh.Fresh (Control.Monad.Trans.RWS.Strict.RWST r w s m)
module Language.Jsonnet.Value
data Value
VNull :: Value
VBool :: !Bool -> Value
VNum :: !Scientific -> Value
VStr :: !Text -> Value
VArr :: !Array -> Value
VObj :: !HashMap Text (Hideable Thunk) -> Value
VClos :: !Fun -> !Env -> Value
VFun :: !Thunk -> Eval Value -> Value
type Array = Vector Thunk
type Object = HashMap Text (Hideable Thunk)
valueType :: Value -> Text
data Thunk
TC :: !Ctx -> !Core -> Thunk
TV :: !Eval Value -> Thunk
force :: Thunk -> Eval Value
mkThunk' :: Value -> Thunk
mkThunk :: MonadIO m => Eval Value -> m Thunk
proj' :: HasValue a => Thunk -> Eval a
class HasValue a
proj :: HasValue a => Value -> Eval a
inj :: HasValue a => a -> Value
throwTypeMismatch :: Text -> Value -> Eval a
inj' :: (HasValue a, HasValue b) => (a -> b) -> Value -> Eval Value
inj'' :: (HasValue a, HasValue b, HasValue c) => (a -> b -> c) -> Value -> Value -> Eval Value
instance GHC.Generics.Generic Language.Jsonnet.Value.Value
instance GHC.Generics.Generic Language.Jsonnet.Value.Thunk
instance Language.Jsonnet.Value.HasValue Language.Jsonnet.Value.Value
instance Language.Jsonnet.Value.HasValue GHC.Types.Bool
instance Language.Jsonnet.Value.HasValue Data.Text.Internal.Text
instance Language.Jsonnet.Value.HasValue [GHC.Types.Char]
instance Language.Jsonnet.Value.HasValue Data.ByteString.Internal.ByteString
instance Language.Jsonnet.Value.HasValue Data.Scientific.Scientific
instance Language.Jsonnet.Value.HasValue GHC.Types.Double
instance GHC.Real.Integral a => Language.Jsonnet.Value.HasValue a
instance Language.Jsonnet.Value.HasValue a => Language.Jsonnet.Value.HasValue (GHC.Maybe.Maybe a)
instance Language.Jsonnet.Value.HasValue a => Language.Jsonnet.Value.HasValue (Data.Vector.Vector a)
instance Language.Jsonnet.Value.HasValue (Data.Vector.Vector Language.Jsonnet.Value.Thunk)
instance Language.Jsonnet.Value.HasValue a => Language.Jsonnet.Value.HasValue [a]
instance Language.Jsonnet.Value.HasValue Language.Jsonnet.Value.Object
instance (Language.Jsonnet.Value.HasValue a, Language.Jsonnet.Value.HasValue b) => Language.Jsonnet.Value.HasValue (a -> b)
instance (Language.Jsonnet.Value.HasValue a, Language.Jsonnet.Value.HasValue b, Language.Jsonnet.Value.HasValue c) => Language.Jsonnet.Value.HasValue (a -> b -> c)
instance (Language.Jsonnet.Value.HasValue a, Language.Jsonnet.Value.HasValue b) => Language.Jsonnet.Value.HasValue (a -> Language.Jsonnet.Eval.Monad.Eval b)
instance (Language.Jsonnet.Value.HasValue a, Language.Jsonnet.Value.HasValue b, Language.Jsonnet.Value.HasValue c) => Language.Jsonnet.Value.HasValue (a -> b -> Language.Jsonnet.Eval.Monad.Eval c)
module Language.Jsonnet.Std.Lib
-- | The native subset of Jsonnet standard library
std :: Value
objectHasEx :: Object -> Text -> Bool -> Bool
instance Data.Aeson.Types.FromJSON.FromJSON Language.Jsonnet.Value.Value
module Language.Jsonnet.Manifest
manifest :: Value -> Eval Value
forceArray :: Vector Thunk -> Eval (Vector Value)
forceObject :: Object -> Eval (HashMap Text Value)
visibleKeys :: Object -> HashMap Text Thunk
module Language.Jsonnet.Eval
eval :: Core -> Eval Value
evalClos :: Ctx -> Fun -> [Arg Thunk] -> Eval Value
-- | right-biased union of two objects, i.e. '{x : 1} + {x : 2} == {x : 2}'
mergeWith :: Object -> Object -> Object
module Language.Jsonnet
data JsonnetM a
interpret :: Config -> Text -> IO (Either Error Value)
data Config
Config :: FilePath -> Value -> Config
[fname] :: Config -> FilePath
[stdlib] :: Config -> Value
data Value
VNull :: Value
VBool :: !Bool -> Value
VNum :: !Scientific -> Value
VStr :: !Text -> Value
VArr :: !Array -> Value
VObj :: !HashMap Text (Hideable Thunk) -> Value
VClos :: !Fun -> !Env -> Value
VFun :: !Thunk -> Eval Value -> Value
runJsonnetM :: Config -> JsonnetM a -> IO (Either Error a)
parse :: Text -> JsonnetM Expr
evaluate :: Core -> JsonnetM Value
instance Control.Monad.Fail.MonadFail Language.Jsonnet.JsonnetM
instance Control.Monad.Catch.MonadMask Language.Jsonnet.JsonnetM
instance Control.Monad.Catch.MonadCatch Language.Jsonnet.JsonnetM
instance Control.Monad.Catch.MonadThrow Language.Jsonnet.JsonnetM
instance Control.Monad.Error.Class.MonadError Language.Jsonnet.Error.Error Language.Jsonnet.JsonnetM
instance Control.Monad.Reader.Class.MonadReader Language.Jsonnet.Config Language.Jsonnet.JsonnetM
instance Control.Monad.Fix.MonadFix Language.Jsonnet.JsonnetM
instance Control.Monad.IO.Class.MonadIO Language.Jsonnet.JsonnetM
instance GHC.Base.Monad Language.Jsonnet.JsonnetM
instance GHC.Base.Applicative Language.Jsonnet.JsonnetM
instance GHC.Base.Functor Language.Jsonnet.JsonnetM