cryptol-2.4.0: Cryptol: The Language of Cryptography

Copyright(c) 2013-2016 Galois, Inc.
LicenseBSD3
Maintainercryptol@galois.com
Stabilityprovisional
Portabilityportable
Safe HaskellNone
LanguageHaskell98

Cryptol.Symbolic.Value

Contents

Description

 

Synopsis

Documentation

data TValue Source #

An evaluated type of kind *. These types do not contain type variables, type synonyms, or type functions.

data GenValue b w Source #

Generic value type, parameterized by bit and word types.

Constructors

VRecord [(Ident, GenValue b w)] 
VTuple [GenValue b w] 
VBit b 
VSeq Bool [GenValue b w] 
VWord w 
VStream [GenValue b w] 
VFun (GenValue b w -> GenValue b w) 
VPoly (TValue -> GenValue b w) 
VNumPoly (Nat' -> GenValue b w) 

Instances

PP (WithBase Value) Source # 

Methods

ppPrec :: Int -> WithBase Value -> Doc Source #

Generic (GenValue b w) Source # 

Associated Types

type Rep (GenValue b w) :: * -> * #

Methods

from :: GenValue b w -> Rep (GenValue b w) x #

to :: Rep (GenValue b w) x -> GenValue b w #

(NFData b, NFData w) => NFData (GenValue b w) Source # 

Methods

rnf :: GenValue b w -> () #

type Rep (GenValue b w) Source # 
type Rep (GenValue b w) = D1 (MetaData "GenValue" "Cryptol.Eval.Value" "cryptol-2.4.0-AtabUoGsZJn8kSvO8P84NP" False) ((:+:) ((:+:) ((:+:) (C1 (MetaCons "VRecord" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [(Ident, GenValue b w)]))) (C1 (MetaCons "VTuple" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [GenValue b w])))) ((:+:) (C1 (MetaCons "VBit" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 b))) (C1 (MetaCons "VSeq" PrefixI False) ((:*:) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Bool)) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [GenValue b w])))))) ((:+:) ((:+:) (C1 (MetaCons "VWord" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 w))) (C1 (MetaCons "VStream" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [GenValue b w])))) ((:+:) (C1 (MetaCons "VFun" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (GenValue b w -> GenValue b w)))) ((:+:) (C1 (MetaCons "VPoly" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (TValue -> GenValue b w)))) (C1 (MetaCons "VNumPoly" PrefixI False) (S1 (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Nat' -> GenValue b w))))))))

lam :: (GenValue b w -> GenValue b w) -> GenValue b w Source #

tlam :: (TValue -> GenValue b w) -> GenValue b w Source #

A type lambda that expects a Type of kind *.

nlam :: (Nat' -> GenValue b w) -> GenValue b w Source #

A type lambda that expects a Type of kind #.

toStream :: [GenValue b w] -> GenValue b w Source #

Generate a stream.

toSeq :: Nat' -> TValue -> [GenValue b w] -> GenValue b w Source #

Construct either a finite sequence, or a stream. In the finite case, record whether or not the elements were bits, to aid pretty-printing.

fromVBit :: GenValue b w -> b Source #

Extract a bit value.

fromVFun :: GenValue b w -> GenValue b w -> GenValue b w Source #

Extract a function from a value.

fromVPoly :: GenValue b w -> TValue -> GenValue b w Source #

Extract a polymorphic function from a value.

fromVNumPoly :: GenValue b w -> Nat' -> GenValue b w Source #

Extract a polymorphic function from a value.

fromVTuple :: GenValue b w -> [GenValue b w] Source #

Extract a tuple from a value.

fromVRecord :: GenValue b w -> [(Ident, GenValue b w)] Source #

Extract a record from a value.

lookupRecord :: Ident -> GenValue b w -> GenValue b w Source #

Lookup a field in a record.

fromSeq :: BitWord b w => GenValue b w -> [GenValue b w] Source #

Extract a sequence.

fromVWord :: BitWord b w => GenValue b w -> w Source #

Extract a packed word.

Orphan instances