We don't ned the type parameter here at all. It can be a Classification[DiscreteVar] and it will always work fine.

The only reason why you might want to constrain the type of the variable being passed is for the discrete marginal, and I think it's not worth it to propagate it all the way.