jsonnet-0.3.1.1: Jsonnet implementaton in pure Haskell
Copyright(c) 2020-2021 Alexandre Moreno
LicenseBSD-3-Clause OR Apache-2.0
MaintainerAlexandre Moreno <alexmorenocano@gmail.com>
Stabilityexperimental
Portabilitynon-portable
Safe HaskellNone
LanguageHaskell2010

Language.Jsonnet.Eval.Monad

Description

 
Synopsis

Documentation

type Ctx a = Map (Name Core) a Source #

data CallStack Source #

Simulate a call-stack to report stack traces

Constructors

CallStack 

Fields

data EvalState a Source #

Constructors

EvalState 

Fields

Instances

Instances details
MonadReader (EvalState a) (EvalM a) Source # 
Instance details

Defined in Language.Jsonnet.Eval.Monad

Methods

ask :: EvalM a (EvalState a) #

local :: (EvalState a -> EvalState a) -> EvalM a a0 -> EvalM a a0 #

reader :: (EvalState a -> a0) -> EvalM a a0 #

ctx :: forall a a. Lens (EvalState a) (EvalState a) (Ctx a) (Ctx a) Source #

newtype EvalM a b Source #

Constructors

EvalM 

Instances

Instances details
MonadError Error (EvalM a) Source # 
Instance details

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 # 
Instance details

Defined in Language.Jsonnet.Eval.Monad

Methods

(>>=) :: EvalM a a0 -> (a0 -> EvalM a b) -> EvalM a b #

(>>) :: EvalM a a0 -> EvalM a b -> EvalM a b #

return :: a0 -> EvalM a a0 #

Functor (EvalM a) Source # 
Instance details

Defined in Language.Jsonnet.Eval.Monad

Methods

fmap :: (a0 -> b) -> EvalM a a0 -> EvalM a b #

(<$) :: a0 -> EvalM a b -> EvalM a a0 #

MonadFix (EvalM a) Source # 
Instance details

Defined in Language.Jsonnet.Eval.Monad

Methods

mfix :: (a0 -> EvalM a a0) -> EvalM a a0 #

MonadFail (EvalM a) Source # 
Instance details

Defined in Language.Jsonnet.Eval.Monad

Methods

fail :: String -> EvalM a a0 #

Applicative (EvalM a) Source # 
Instance details

Defined in Language.Jsonnet.Eval.Monad

Methods

pure :: a0 -> EvalM a a0 #

(<*>) :: EvalM a (a0 -> b) -> EvalM a a0 -> EvalM a b #

liftA2 :: (a0 -> b -> c) -> EvalM a a0 -> EvalM a b -> EvalM a c #

(*>) :: EvalM a a0 -> EvalM a b -> EvalM a b #

(<*) :: EvalM a a0 -> EvalM a b -> EvalM a a0 #

MonadIO (EvalM a) Source # 
Instance details

Defined in Language.Jsonnet.Eval.Monad

Methods

liftIO :: IO a0 -> EvalM a a0 #

MonadThrow (EvalM a) Source # 
Instance details

Defined in Language.Jsonnet.Eval.Monad

Methods

throwM :: Exception e => e -> EvalM a a0 #

MonadCatch (EvalM a) Source # 
Instance details

Defined in Language.Jsonnet.Eval.Monad

Methods

catch :: Exception e => EvalM a a0 -> (e -> EvalM a a0) -> EvalM a a0 #

MonadMask (EvalM a) Source # 
Instance details

Defined in Language.Jsonnet.Eval.Monad

Methods

mask :: ((forall a0. EvalM a a0 -> EvalM a a0) -> EvalM a b) -> EvalM a b #

uninterruptibleMask :: ((forall a0. EvalM a a0 -> EvalM a a0) -> EvalM a b) -> EvalM a b #

generalBracket :: EvalM a a0 -> (a0 -> ExitCase b -> EvalM a c) -> (a0 -> EvalM a b) -> EvalM a (b, c) #

Fresh (EvalM a) Source # 
Instance details

Defined in Language.Jsonnet.Eval.Monad

Methods

fresh :: Name a0 -> EvalM a (Name a0) #

MonadReader (EvalState a) (EvalM a) Source # 
Instance details

Defined in Language.Jsonnet.Eval.Monad

Methods

ask :: EvalM a (EvalState a) #

local :: (EvalState a -> EvalState a) -> EvalM a a0 -> EvalM a a0 #

reader :: (EvalState a -> a0) -> EvalM a a0 #

(HasValue a, HasValue b, HasValue c) => HasValue (a -> b -> Eval c) Source # 
Instance details

Defined in Language.Jsonnet.Eval

Methods

inj :: (a -> b -> Eval c) -> Value Source #

proj :: Value -> Eval (a -> b -> Eval c) Source #

(HasValue a, HasValue b) => HasValue (a -> Eval b) Source # 
Instance details

Defined in Language.Jsonnet.Eval

Methods

inj :: (a -> Eval b) -> Value Source #

proj :: Value -> Eval (a -> Eval b) Source #

runEvalM :: Ctx a -> EvalM a b -> IO (Either Error b) Source #

extendEnv :: Ctx a -> EvalM a b -> EvalM a b Source #

withEnv :: Ctx a -> EvalM a b -> EvalM a b Source #