diff --git a/src/fusiontrees/fusiontrees.jl b/src/fusiontrees/fusiontrees.jl index 13710ee5b..7b97223ec 100644 --- a/src/fusiontrees/fusiontrees.jl +++ b/src/fusiontrees/fusiontrees.jl @@ -214,6 +214,10 @@ function Base.hash(f::FusionTree{I}, h::UInt) where {I} end return h end +# Hashing the first tree pair covers the block's defining data `(uncoupled, isdual)`, while +# also disambiguating the ad-hoc single-pair blocks constructed in `planar_trace` +Base.hash(b::FusionTreeBlock, h::UInt) = isempty(b) ? h : hash(first(fusiontrees(b)), h) + function Base.:(==)(f₁::FusionTree{I, N}, f₂::FusionTree{I, N}) where {I <: Sector, N} f₁.coupled == f₂.coupled || return false @inbounds for i in 1:N