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 |
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
EvalState | |
|
Instances
MonadError Error (EvalM a) Source # | |
Defined in Language.Jsonnet.Eval.Monad 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 # | |