public IEnumerable <MerkleNode> EnumerateDescendants()
        {
            IEnumerable <MerkleNode> result = new MerkleNode[] { this };

            if (Right != null)
            {
                result = Right.EnumerateDescendants().Concat(result);
            }
            if (Left != null)
            {
                result = Left.EnumerateDescendants().Concat(result);
            }
            return(result);
        }