store-0.1.0.0: Fast binary serialization

Safe HaskellNone
LanguageHaskell2010

Data.Store.TypeHash.Internal

Synopsis

Documentation

newtype Tagged a Source

Constructors

Tagged 

Fields

unTagged :: a
 

Instances

Eq a => Eq (Tagged a) Source 
Data a => Data (Tagged a) Source 
Ord a => Ord (Tagged a) Source 
Show a => Show (Tagged a) Source 
Generic (Tagged a) Source 
NFData a => NFData (Tagged a) Source 
(Store a, HasTypeHash a) => Store (Tagged a) Source 
type Rep (Tagged a) Source 

reifyManyTyDecls :: ((Name, Info) -> Q (Bool, [Name])) -> [Name] -> Q [(Name, Info)] Source

typeHashForNames :: [Name] -> Q Exp Source

At compiletime, this yields a hash of the specified datatypes. Not only does this cover the datatypes themselves, but also all transitive dependencies.

The resulting expression is a literal of type Int.

hashOfType :: Type -> Q Exp Source

At compiletime, this yields a cryptographic hash of the specified Type, including the definition of things it references (transitively).

The resulting expression is a literal of type Int.

getConNames :: Data a => a -> [Name] Source

getVarNames :: Data a => a -> [Name] Source

class HasTypeHash a where Source

Methods

typeHash :: Proxy a -> TypeHash Source