let string_of_value_type = function
| RStringValue(s) -> "string"
| RIntegerValue(i) -> "integer"
| RFloatValue(f) -> "float"
| RBooleanValue(b) -> "boolean"
| RMapValue(_, ArraySubtype) ->"array"
| RMapValue(_, MapSubtype) -> "map"
| RFunctionValue(_, _, _, _, _, _, _) | RLibraryFunction(_) -> "function"
| RVoid -> "void"
| RUndefined -> "undefined"