module Crypto.Hash.CompactSparseMerkleTree.DataNode where import Crypto.Hash (Digest) data DataNode alg a = ExternalNode { DataNode alg a -> Digest alg digest :: Digest alg, DataNode alg a -> a value :: a } | InternalNode { digest :: Digest alg, DataNode alg a -> Digest alg maxDigest :: Digest alg } deriving (Int -> DataNode alg a -> ShowS [DataNode alg a] -> ShowS DataNode alg a -> String (Int -> DataNode alg a -> ShowS) -> (DataNode alg a -> String) -> ([DataNode alg a] -> ShowS) -> Show (DataNode alg a) forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a forall alg a. Show a => Int -> DataNode alg a -> ShowS forall alg a. Show a => [DataNode alg a] -> ShowS forall alg a. Show a => DataNode alg a -> String showList :: [DataNode alg a] -> ShowS $cshowList :: forall alg a. Show a => [DataNode alg a] -> ShowS show :: DataNode alg a -> String $cshow :: forall alg a. Show a => DataNode alg a -> String showsPrec :: Int -> DataNode alg a -> ShowS $cshowsPrec :: forall alg a. Show a => Int -> DataNode alg a -> ShowS Show)