Right now, the GFR sampler enumerates all possible cutpoints (for numeric and categorical features) and then samples according to the (unweighted) likelihood x prior for each split.
To account for the fact that categorical features often have fewer possible cutpoints, we should "up-weight" the likelihood x prior entries by a factor of (# number of numeric cutpoints) / (# of categorical cutpoints) so that the prior probability of splitting on any given feature is roughly uniform.