cryptol-2.4.0: Cryptol: The Language of Cryptography

Copyright | (c) 2013-2016 Galois Inc.
License | BSD3
Maintainer | cryptol@galois.com
Stability | provisional
Portability | portable
Safe Haskell | Safe
Language | Haskell98

Cryptol.Eval

Description

# Documentation

moduleEnv :: Module -> EvalEnv -> EvalEnv Source #

data EvalEnv Source #

Instances

Generic EvalEnv Source # |
Associated Types type Rep EvalEnv :: * -> * # Methods from :: EvalEnv -> Rep EvalEnv x # to :: Rep EvalEnv x -> EvalEnv #
Monoid EvalEnv Source # |
Methods mempty :: EvalEnv # mappend :: EvalEnv -> EvalEnv -> EvalEnv # mconcat :: [EvalEnv] -> EvalEnv #
NFData EvalEnv Source # |
Methods rnf :: EvalEnv -> () #
PP (WithBase EvalEnv) Source # |
Methods ppPrec :: Int -> WithBase EvalEnv -> Doc Source #
type Rep EvalEnv Source # |
type Rep EvalEnv = D1 (MetaData "EvalEnv" "Cryptol.Eval.Env" "cryptol-2.4.0-CN28BMG3PUFD1lr9WvB1U9" False) (C1 (MetaCons "EvalEnv" PrefixI True) ((:*:) (S1 (MetaSel (Just Symbol "envVars") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Map Name Value))) (S1 (MetaSel (Just Symbol "envTypes") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Map TVar (Either Nat' TValue))))))

emptyEnv :: EvalEnv Source #

evalExpr :: EvalEnv -> Expr -> Value Source #

evalDecls :: [DeclGroup] -> EvalEnv -> EvalEnv Source #

data EvalError Source #

Constructors

InvalidIndex Integer |
TypeCannotBeDemoted Type |
DivideByZero |
WordTooWide Integer |
UserError String |

Instances

Show EvalError Source # |
Methods showsPrec :: Int -> EvalError -> ShowS # show :: EvalError -> String # showList :: [EvalError] -> ShowS #
Exception EvalError Source # |
Methods toException :: EvalError -> SomeException # fromException :: SomeException -> Maybe EvalError # displayException :: EvalError -> String #
PP EvalError Source # |
Methods ppPrec :: Int -> EvalError -> Doc Source #

data WithBase a Source #

Constructors

WithBase PPOpts a |

Instances

Functor WithBase Source # |
Methods fmap :: (a -> b) -> WithBase a -> WithBase b # (<$) :: a -> WithBase b -> WithBase a #
PP (WithBase Value) Source # |
Methods ppPrec :: Int -> WithBase Value -> Doc Source #
PP (WithBase EvalEnv) Source # |
Methods ppPrec :: Int -> WithBase EvalEnv -> Doc Source #