Can we compute the precision and scale in the constructor? I suppose you don't have these values yet, but I'd hate to slow down the evaluate path. What if we delay setting the precision/scale until later?