Karya, built on 2023-08-29T07:47:28 (patch 7a412d5d6ba4968ca4155ef276a062ccdeb9109a)
Safe HaskellSafe-Inferred

Derive.Env

Contents

Synopsis

Documentation

type Key = Text Source #

Symbols to look up a val in the ValMap.

data Environ Source #

Instances

Instances details
Monoid Environ Source # 
Instance details

Defined in Derive.DeriveT

Semigroup Environ Source # 
Instance details

Defined in Derive.DeriveT

Show Environ Source # 
Instance details

Defined in Derive.DeriveT

NFData Environ Source # 
Instance details

Defined in Derive.DeriveT

Methods

rnf :: Environ -> () #

Pretty Environ Source # 
Instance details

Defined in Derive.DeriveT

insert :: Key -> DeriveT.Val -> Environ -> Environ Source #

Insert a val directly, with no typechecking.

put

put_val :: Typecheck.ToVal a => Key -> a -> Environ -> Either Error Environ Source #

Insert a new val, but return Left if it changes the type of an existing one, so once you put a key of a given type into the environ, it can only ever be overwritten by a Val of the same type. The idea is that being inconsistent with types will just lead to confusion.

DeriveT.VNotGiven is another special case, it deletes the given key.

insert_val :: Typecheck.ToVal a => Key -> a -> Environ -> Environ Source #

Insert a val without typechecking.

data LookupError Source #

Instances

Instances details
Show LookupError Source # 
Instance details

Defined in Derive.Env

maybe_val :: Typecheck.Typecheck a => Key -> Environ -> Maybe a Source #

Like get_val, except that type errors and not found both turn into Nothing.

checked_val :: forall a. Typecheck.Typecheck a => Key -> Environ -> Either Text (Maybe a) Source #

Like get_val but format a WrongType nicely.

checked_val2 :: Typecheck.Typecheck a => Key -> Environ -> Maybe (Either Text a) Source #

Like checked_val, but juggle the return type around so NotFound is just Nothing, which is more convenient in some cases.