| Copyright | (c) 2020-2021 Alexandre Moreno |
|---|---|
| License | BSD-3-Clause OR Apache-2.0 |
| Maintainer | Alexandre Moreno <alexmorenocano@gmail.com> |
| Stability | experimental |
| Portability | non-portable |
| Safe Haskell | None |
| Language | GHC2021 |
Language.Jsonnet.Eval.Monad
Description
Synopsis
- type Ctx a = Map (Name Core) a
- data CallStack = CallStack {}
- scopes :: Lens' CallStack [Name Core]
- spans :: Lens' CallStack [Maybe SrcSpan]
- emptyStack :: CallStack
- data EvalState a = EvalState {
- _ctx :: Ctx a
- _callStack :: CallStack
- _currentPos :: Maybe SrcSpan
- _gen :: IORef Integer
- callStack :: forall a f. Functor f => (CallStack -> f CallStack) -> EvalState a -> f (EvalState a)
- ctx :: forall a1 a2 f. Functor f => (Ctx a1 -> f (Ctx a2)) -> EvalState a1 -> f (EvalState a2)
- currentPos :: forall a f. Functor f => (Maybe SrcSpan -> f (Maybe SrcSpan)) -> EvalState a -> f (EvalState a)
- gen :: forall a f. Functor f => (IORef Integer -> f (IORef Integer)) -> EvalState a -> f (EvalState a)
- newtype EvalM a b = EvalM {}
- runEvalM :: Ctx a -> EvalM a b -> IO (Either Error b)
- throwE :: EvalError -> EvalM a b
- extendEnv :: Ctx a -> EvalM a b -> EvalM a b
- withEnv :: Ctx a -> EvalM a b -> EvalM a b
- pushStackFrame :: (Name Core, Maybe SrcSpan) -> EvalM a b -> EvalM a b
- getBacktrace :: EvalM a (Backtrace Core)
Documentation
Simulate a call-stack to report stack traces
callStack :: forall a f. Functor f => (CallStack -> f CallStack) -> EvalState a -> f (EvalState a) Source #
ctx :: forall a1 a2 f. Functor f => (Ctx a1 -> f (Ctx a2)) -> EvalState a1 -> f (EvalState a2) Source #
currentPos :: forall a f. Functor f => (Maybe SrcSpan -> f (Maybe SrcSpan)) -> EvalState a -> f (EvalState a) Source #
gen :: forall a f. Functor f => (IORef Integer -> f (IORef Integer)) -> EvalState a -> f (EvalState a) Source #