let cast_to_float value = match value with | RFloatValue(f) -> f | RIntegerValue(i) -> float_of_int i | _ -> raise (EInvalidCast (string_of_value_type value,"float"))