// Object

        public override bool Equals(object obj)
        {
            return(obj is CompressedHeader header &&
                   BlockTypes.Equals(header.BlockTypes) &&
                   DistanceParameters.Equals(header.DistanceParameters) &&
                   CollectionHelper.Equal(LiteralCtxModes, header.LiteralCtxModes) &&
                   LiteralCtxMap.Equals(header.LiteralCtxMap) &&
                   DistanceCtxMap.Equals(header.DistanceCtxMap) &&
                   CollectionHelper.Equal(LiteralTrees, header.LiteralTrees) &&
                   CollectionHelper.Equal(InsertCopyTrees, header.InsertCopyTrees) &&
                   CollectionHelper.Equal(DistanceTrees, header.DistanceTrees));
        }