type qualified_name = stringtype resolved_name = | Local| Param| Global of qualified_name| NotResolved
type special = | Null| Undefined| This| Super| Exports| Module| New| NewTarget| Eval| Require| Seq| Void| Typeof| Instanceof| In| Delete| Spread| Yield| YieldStar| Await| Encaps of name option| UseStrict| And| Or| Not| Xor| BitNot| BitAnd| BitOr| BitXor| Lsr| Asr| Lsl| Equal| PhysEqual| Lower| Greater| Plus| Minus| Mul| Div| Mod| Expo| Incr of bool| Decr of bool
type filename = string wrapval default_entity : stringtype property_name = | PN of name| PN_Computed of expr
and var_kind = | Var| Let| Const
and parameter = {p_name : name;p_default : expr option;p_dots : bool;
}and fun_prop = | Get| Set| Generator| Async
and class_ = {c_extends : expr option;c_body : property list;
}and property_prop = | Static| Public| Private| Protected
val str_of_name : ('a * 'b) -> 'aval unwrap : ('a * 'b) -> 'a