module Int_intf:sig..end
delimiter is underscore by defaultmodule type S =sig..end
delimiter is underscore by defaultmin_valuemod in Pervasives or rem in
      Int32/64, i.e.  if y is not zero, the result of rem x y satisfies the
      following properties: x = (x / y) * y + rem x y and abs (rem x y) <= abs y - 1.
      If y = 0, rem x y raises Division_by_zero.  Notice that rem x y is
      nonpositive if and only if x < 0.
      The results are unspecified for negative shifts and shifts >= num_bits
shifts left, filling in with zeroes
shifts right, preserving the sign of the input.
shifts right, filling in with zeroes, which will not preserve the sign of the
      input