type t = float let of_float x = x let of_int i = float_of_int i let of_string s = float_of_string s let to_float x = x let to_int x = int_of_float x let to_string x = if x >= 0. then Printf.sprintf "+%f" x else Printf.sprintf "%f" x let ( + ) a b = (to_float a) +. (to_float b) |> of_float let ( - ) a b = (to_float a) -. (to_float b) |> of_float let ( * ) a b = (to_float a) *. b |> of_float let ( / ) a b = (to_float a) /. b |> of_float