| 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 | Haskell2010 |
Language.Jsonnet.Eval.Monad
Description
Synopsis
- type Ctx a = Map (Name Core) a
- data CallStack = CallStack {}
- spans :: Lens' CallStack [Maybe SrcSpan]
- scopes :: Lens' CallStack [Name Core]
- emptyStack :: CallStack
- data EvalState a = EvalState {
- _ctx :: Ctx a
- _callStack :: CallStack
- _currentPos :: Maybe SrcSpan
- currentPos :: forall a. Lens' (EvalState a) (Maybe SrcSpan)
- ctx :: forall a a. Lens (EvalState a) (EvalState a) (Ctx a) (Ctx a)
- callStack :: forall a. Lens' (EvalState a) CallStack
- 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
Constructors
| EvalState | |
Fields
| |
Instances
| MonadError Error (EvalM a) Source # | |
Defined in Language.Jsonnet.Eval.Monad Methods throwError :: Error -> EvalM a a0 # catchError :: EvalM a a0 -> (Error -> EvalM a a0) -> EvalM a a0 # | |
| Monad (EvalM a) Source # | |
| Functor (EvalM a) Source # | |
| MonadFix (EvalM a) Source # | |
Defined in Language.Jsonnet.Eval.Monad | |
| MonadFail (EvalM a) Source # | |
Defined in Language.Jsonnet.Eval.Monad | |
| Applicative (EvalM a) Source # | |
| MonadIO (EvalM a) Source # | |
Defined in Language.Jsonnet.Eval.Monad | |
| MonadThrow (EvalM a) Source # | |
Defined in Language.Jsonnet.Eval.Monad | |
| MonadCatch (EvalM a) Source # | |
| MonadMask (EvalM a) Source # | |
Defined in Language.Jsonnet.Eval.Monad | |
| Fresh (EvalM a) Source # | |
| MonadReader (EvalState a) (EvalM a) Source # | |
| (HasValue a, HasValue b, HasValue c) => HasValue (a -> b -> Eval c) Source # | |
| (HasValue a, HasValue b) => HasValue (a -> Eval b) Source # | |