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"