web3-0.8.3.1: Ethereum API for Haskell

CopyrightAlexander Krupenkin 2017-2018
LicenseBSD3
Maintainermail@akru.me
Stabilityexperimental
Portabilityunportable
Safe HaskellNone
LanguageHaskell2010

Data.Solidity.Event.Internal

Description

This module is internal, the purpose is to define helper classes and types to assist in event decoding. The user of this library should have no need to use this directly in application code.

Synopsis

Documentation

data HList :: [Type] -> Type where #

Constructors

HNil :: HList '[] 
(:<) :: a -> HList as -> HList (a ': as) infixr 0 

class HListRep a xs | a -> xs, a -> xs where #

Generic representation to HList representation

Methods

toHList :: a -> HList xs #

fromHList :: HList xs -> a #

Instances
HListRep (NP f as') as => HListRep (SOP f (as' ': ([] :: [[k]]))) as # 
Instance details

Defined in Data.Solidity.Event.Internal

Methods

toHList :: SOP f (as' ': []) -> HList as #

fromHList :: HList as -> SOP f (as' ': []) #

HListRep (NP I ([] :: [Type])) ([] :: [Type]) # 
Instance details

Defined in Data.Solidity.Event.Internal

Methods

toHList :: NP I [] -> HList [] #

fromHList :: HList [] -> NP I [] #

HListRep (NP I as) as => HListRep (NP I (a ': as)) (a ': as) # 
Instance details

Defined in Data.Solidity.Event.Internal

Methods

toHList :: NP I (a ': as) -> HList (a ': as) #

fromHList :: HList (a ': as) -> NP I (a ': as) #

class Sort (xs :: [Type]) where #

Sort a Tagged HList

Associated Types

type Sort' xs :: [Type] #

Methods

sort :: HList xs -> HList (Sort' xs) #

Instances
Sort ([] :: [Type]) # 
Instance details

Defined in Data.Solidity.Event.Internal

Associated Types

type Sort' [] :: [Type] #

Methods

sort :: HList [] -> HList (Sort' []) #

(Sort xs, Insert x (Sort' xs)) => Sort (x ': xs) # 
Instance details

Defined in Data.Solidity.Event.Internal

Associated Types

type Sort' (x ': xs) :: [Type] #

Methods

sort :: HList (x ': xs) -> HList (Sort' (x ': xs)) #

class Insert (x :: Type) (xs :: [Type]) where #

Associated Types

type Insert' x xs :: [Type] #

Methods

insert :: x -> HList xs -> HList (Insert' x xs) #

Instances
Insert x ([] :: [Type]) # 
Instance details

Defined in Data.Solidity.Event.Internal

Associated Types

type Insert' x [] :: [Type] #

Methods

insert :: x -> HList [] -> HList (Insert' x []) #

InsertCmp (CmpNat n m) (Tagged n x) (Tagged m y) ys => Insert (Tagged n x) (Tagged m y ': ys) # 
Instance details

Defined in Data.Solidity.Event.Internal

Associated Types

type Insert' (Tagged n x) (Tagged m y ': ys) :: [Type] #

Methods

insert :: Tagged n x -> HList (Tagged m y ': ys) -> HList (Insert' (Tagged n x) (Tagged m y ': ys)) #

class InsertCmp (b :: Ordering) (x :: Type) (y :: Type) (ys :: [Type]) where #

Associated Types

type InsertCmp' b x y ys :: [Type] #

Methods

insertCmp :: Proxy (b :: Ordering) -> x -> y -> HList ys -> HList (InsertCmp' b x y ys) #

Instances
InsertCmp LT x y ys # 
Instance details

Defined in Data.Solidity.Event.Internal

Associated Types

type InsertCmp' LT x y ys :: [Type] #

Methods

insertCmp :: Proxy LT -> x -> y -> HList ys -> HList (InsertCmp' LT x y ys) #

Insert x ys => InsertCmp GT x y ys # 
Instance details

Defined in Data.Solidity.Event.Internal

Associated Types

type InsertCmp' GT x y ys :: [Type] #

Methods

insertCmp :: Proxy GT -> x -> y -> HList ys -> HList (InsertCmp' GT x y ys) #

class UnTag t where #

Unwrap all the Tagged items in an HList

Associated Types

type UnTag' t :: [Type] #

Methods

unTag :: HList t -> HList (UnTag' t) #

Instances
UnTag ([] :: [Type]) # 
Instance details

Defined in Data.Solidity.Event.Internal

Associated Types

type UnTag' [] :: [Type] #

Methods

unTag :: HList [] -> HList (UnTag' []) #

UnTag ts => UnTag (Tagged n a ': ts) # 
Instance details

Defined in Data.Solidity.Event.Internal

Associated Types

type UnTag' (Tagged n a ': ts) :: [Type] #

Methods

unTag :: HList (Tagged n a ': ts) -> HList (UnTag' (Tagged n a ': ts)) #

class HListMerge (as :: [Type]) (bs :: [Type]) where #

Associated Types

type Concat as bs :: [Type] #

Methods

mergeHList :: HList as -> HList bs -> HList (Concat as bs) #

Instances
HListMerge ([] :: [Type]) bs # 
Instance details

Defined in Data.Solidity.Event.Internal

Associated Types

type Concat [] bs :: [Type] #

Methods

mergeHList :: HList [] -> HList bs -> HList (Concat [] bs) #

HListMerge as bs => HListMerge (a ': as) bs # 
Instance details

Defined in Data.Solidity.Event.Internal

Associated Types

type Concat (a ': as) bs :: [Type] #

Methods

mergeHList :: HList (a ': as) -> HList bs -> HList (Concat (a ': as) bs) #

class HListMergeSort as bs where #

Associated Types

type MergeSort' as bs :: [Type] #

Methods

mergeSortHList :: HList as -> HList bs -> HList (MergeSort' as bs) #

Instances
(HListMerge as bs, Concat as bs ~ cs, Sort cs, Sort' cs ~ cs') => HListMergeSort as bs # 
Instance details

Defined in Data.Solidity.Event.Internal

Associated Types

type MergeSort' as bs :: [Type] #

Methods

mergeSortHList :: HList as -> HList bs -> HList (MergeSort' as bs) #

class MergeIndexedArguments as bs where #

Associated Types

type MergeIndexedArguments' as bs :: [Type] #

Instances
(HListMergeSort as bs, MergeSort' as bs ~ cs, UnTag cs, UnTag cs' ~ ds) => MergeIndexedArguments as bs # 
Instance details

Defined in Data.Solidity.Event.Internal

Associated Types

type MergeIndexedArguments' as bs :: [Type] #