struct
let to_string i = Int_to_string i
let of_string s = String_to_int s
let bin_op a o b = Int_bin_op (a, o, b)
let add a b = bin_op a `Plus b
let (+) = add
let sub a b = bin_op a `Minus b
let (-) = sub
let mul a b = bin_op a `Mult b
let ( * ) = mul
let div a b = bin_op a `Div b
let (/) = div
let modulo a b = bin_op a `Mod b
let (mod) = modulo
let cmp op a b = Int_bin_comparison (a, op, b)
let eq = cmp `Eq
let ne = cmp `Ne
let lt = cmp `Lt
let le = cmp `Le
let ge = cmp `Ge
let gt = cmp `Gt
let (=) = eq
let (<>) = ne
let (<) = lt
let (<=) = le
let (>=) = ge
let (>) = gt
end