predicate float_uniform(var float:l, var float: u, var float: r); function var float: uniform_slv(var float: l, var float: u) :: impure = let { var lb(l)..ub(u): rnd; constraint float_uniform(l,u,rnd): } in rnd;