let nonneg = 
  let nn_int = Nonneg(Dom.Int)
  and nn_real = Nonneg(Dom.Real)
  and nn_nonint = Nonneg(Dom.Nonintin
    function
      | Dom.Int -> nn_int
      | Dom.Real -> nn_real
      | Dom.Nonint -> nn_nonint