Unfortunately, creating blocks in MRI is still very expensive, and you seem to pass around blocks quite a bit in this library. I could see this lib being used in some critical path/performance sensitive areas as well, so I think performance in this area is important.
I didn't take a deep enough dive in this to see where this would be possible (for example, this bit in deep_diff could probably use yield and block_given?). Otherwise, I think the library is extremely well written!
Unfortunately, creating blocks in MRI is still very expensive, and you seem to pass around blocks quite a bit in this library. I could see this lib being used in some critical path/performance sensitive areas as well, so I think performance in this area is important.
I didn't take a deep enough dive in this to see where this would be possible (for example, this bit in deep_diff could probably use yield and block_given?). Otherwise, I think the library is extremely well written!