jsonnet-0.2.0.0: Jsonnet implementaton in pure Haskell
Safe HaskellNone
LanguageHaskell2010

Language.Jsonnet.Eval.Monad

Documentation

newtype Eval a Source #

Constructors

Eval 

Instances

Instances details
Monad Eval Source # 
Instance details

Defined in Language.Jsonnet.Eval.Monad

Methods

(>>=) :: Eval a -> (a -> Eval b) -> Eval b #

(>>) :: Eval a -> Eval b -> Eval b #

return :: a -> Eval a #

Functor Eval Source # 
Instance details

Defined in Language.Jsonnet.Eval.Monad

Methods

fmap :: (a -> b) -> Eval a -> Eval b #

(<$) :: a -> Eval b -> Eval a #

MonadFix Eval Source # 
Instance details

Defined in Language.Jsonnet.Eval.Monad

Methods

mfix :: (a -> Eval a) -> Eval a #

MonadFail Eval Source # 
Instance details

Defined in Language.Jsonnet.Eval.Monad

Methods

fail :: String -> Eval a #

Applicative Eval Source # 
Instance details

Defined in Language.Jsonnet.Eval.Monad

Methods

pure :: a -> Eval a #

(<*>) :: Eval (a -> b) -> Eval a -> Eval b #

liftA2 :: (a -> b -> c) -> Eval a -> Eval b -> Eval c #

(*>) :: Eval a -> Eval b -> Eval b #

(<*) :: Eval a -> Eval b -> Eval a #

MonadIO Eval Source # 
Instance details

Defined in Language.Jsonnet.Eval.Monad

Methods

liftIO :: IO a -> Eval a #

MonadThrow Eval Source # 
Instance details

Defined in Language.Jsonnet.Eval.Monad

Methods

throwM :: Exception e => e -> Eval a #

MonadCatch Eval Source # 
Instance details

Defined in Language.Jsonnet.Eval.Monad

Methods

catch :: Exception e => Eval a -> (e -> Eval a) -> Eval a #

MonadMask Eval Source # 
Instance details

Defined in Language.Jsonnet.Eval.Monad

Methods

mask :: ((forall a. Eval a -> Eval a) -> Eval b) -> Eval b #

uninterruptibleMask :: ((forall a. Eval a -> Eval a) -> Eval b) -> Eval b #

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

Fresh Eval Source # 
Instance details

Defined in Language.Jsonnet.Eval.Monad

Methods

fresh :: Name a -> Eval (Name a) #

MonadWriter () Eval Source # 
Instance details

Defined in Language.Jsonnet.Eval.Monad

Methods

writer :: (a, ()) -> Eval a #

tell :: () -> Eval () #

listen :: Eval a -> Eval (a, ()) #

pass :: Eval (a, () -> ()) -> Eval a #

MonadState EvalState Eval Source # 
Instance details

Defined in Language.Jsonnet.Eval.Monad

Methods

get :: Eval EvalState #

put :: EvalState -> Eval () #

state :: (EvalState -> (a, EvalState)) -> Eval a #

MonadReader Env Eval Source # 
Instance details

Defined in Language.Jsonnet.Eval.Monad

Methods

ask :: Eval Env #

local :: (Env -> Env) -> Eval a -> Eval a #

reader :: (Env -> a) -> Eval a #

MonadError Error Eval Source # 
Instance details

Defined in Language.Jsonnet.Eval.Monad

Methods

throwError :: Error -> Eval a #

catchError :: Eval a -> (Error -> Eval a) -> Eval a #

Generic (Eval a) Source # 
Instance details

Defined in Language.Jsonnet.Eval.Monad

Associated Types

type Rep (Eval a) :: Type -> Type #

Methods

from :: Eval a -> Rep (Eval a) x #

to :: Rep (Eval a) x -> Eval a #

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

Defined in Language.Jsonnet.Value

Methods

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

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

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

Defined in Language.Jsonnet.Value

Methods

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

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

type Rep (Eval a) Source # 
Instance details

Defined in Language.Jsonnet.Eval.Monad

type Rep (Eval a) = D1 ('MetaData "Eval" "Language.Jsonnet.Eval.Monad" "jsonnet-0.2.0.0-inplace" 'True) (C1 ('MetaCons "Eval" 'PrefixI 'True) (S1 ('MetaSel ('Just "unEval") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ExceptT Error (RWST Env () EvalState (FreshMT IO)) a))))

extendCtx :: Ctx -> Eval a -> Eval a Source #

withCtx :: Ctx -> Eval a -> Eval a Source #

data Env Source #

Constructors

Env 

Fields

Instances

Instances details
MonadReader Env Eval Source # 
Instance details

Defined in Language.Jsonnet.Eval.Monad

Methods

ask :: Eval Env #

local :: (Env -> Env) -> Eval a -> Eval a #

reader :: (Env -> a) -> Eval a #

withEnv :: Env -> Eval a -> Eval a Source #

data EvalState Source #

Constructors

EvalState 

Instances

Instances details
MonadState EvalState Eval Source # 
Instance details

Defined in Language.Jsonnet.Eval.Monad

Methods

get :: Eval EvalState #

put :: EvalState -> Eval () #

state :: (EvalState -> (a, EvalState)) -> Eval a #

Orphan instances

(Monoid w, Fresh m) => Fresh (RWST r w s m) Source # 
Instance details

Methods

fresh :: Name a -> RWST r w s m (Name a) #