-- 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