typeinfo.ml

type 't typeinfo =
  { zero : 't;
    one  : 't;
    inf  : 't;
    add  : 't -> 't -> 't;
    sub  : 't -> 't -> 't;
    mul  : 't -> 't -> 't; }

let int_info =
  { zero = 0;
    one  = 1;
    inf  = int_of_float 1e18;
    add  = (+);
    sub  = (-);
    mul  = ( * ) }

let float_info =
  { zero = 0.;
    one  = 1.;
    inf  = 1e18;
    add  = (+.);
    sub  = (-.);
    mul  = ( *. ) }

Back