| Copyright | Alexander Krupenkin 2016-2018 |
|---|---|
| License | BSD3 |
| Maintainer | mail@akru.me |
| Stability | experimental |
| Portability | unportable |
| Safe Haskell | None |
| Language | Haskell2010 |
Network.Ethereum.ABI.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
- data HList :: [Type] -> Type where
- class HListRep a xs | a -> xs, a -> xs where
- class Sort (xs :: [Type]) where
- class Insert (x :: Type) (xs :: [Type]) where
- class InsertCmp (b :: Ordering) (x :: Type) (y :: Type) (ys :: [Type]) where
- type InsertCmp' b x y ys :: [Type]
- class UnTag t where
- class HListMerge (as :: [Type]) (bs :: [Type]) where
- class HListMergeSort as bs where
- type MergeSort' as bs :: [Type]
- class MergeIndexedArguments as bs where
- type MergeIndexedArguments' as bs :: [Type]
Documentation
class HListRep a xs | a -> xs, a -> xs where #
Generic representation to HList representation
class Sort (xs :: [Type]) where #
Sort a Tagged HList
Minimal complete definition
class Insert (x :: Type) (xs :: [Type]) where #
Minimal complete definition
class InsertCmp (b :: Ordering) (x :: Type) (y :: Type) (ys :: [Type]) where #
Minimal complete definition
Associated Types
type InsertCmp' b x y ys :: [Type] #
Instances
| InsertCmp LT x y ys # | |
Defined in Network.Ethereum.ABI.Event.Internal Associated Types type InsertCmp' LT x y ys :: [Type] # | |
| Insert x ys => InsertCmp GT x y ys # | |
Defined in Network.Ethereum.ABI.Event.Internal Associated Types type InsertCmp' GT x y ys :: [Type] # | |
Unwrap all the Tagged items in an HList
Minimal complete definition
class HListMerge (as :: [Type]) (bs :: [Type]) where #
Minimal complete definition
Instances
| HListMerge ([] :: [Type]) bs # | |
Defined in Network.Ethereum.ABI.Event.Internal | |
| HListMerge as bs => HListMerge (a ': as) bs # | |
Defined in Network.Ethereum.ABI.Event.Internal | |
class HListMergeSort as bs where #
Minimal complete definition
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 # | |
Defined in Network.Ethereum.ABI.Event.Internal Associated Types type MergeSort' as bs :: [Type] # Methods mergeSortHList :: HList as -> HList bs -> HList (MergeSort' as bs) # | |
class MergeIndexedArguments as bs where #
Minimal complete definition
Associated Types
type MergeIndexedArguments' as bs :: [Type] #
Methods
mergeIndexedArguments :: HList as -> HList bs -> HList (MergeIndexedArguments' as bs) #
Instances
| (HListMergeSort as bs, MergeSort' as bs ~ cs, UnTag cs, UnTag cs' ~ ds) => MergeIndexedArguments as bs # | |
Defined in Network.Ethereum.ABI.Event.Internal Associated Types type MergeIndexedArguments' as bs :: [Type] # Methods mergeIndexedArguments :: HList as -> HList bs -> HList (MergeIndexedArguments' as bs) # | |