type qualified_name = stringtype resolved_name = | Local| Param| Global of qualified_name| NotResolved
type special = | Null| Undefined| This| Super| Exports| Module| Define| Arguments| New| NewTarget| Eval| Seq| Void| Typeof| Instanceof| In| Delete| Spread| Yield| YieldStar| Await| Encaps of name option| Require| 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 = | Generator| Async| Get| Set
and class_ = {c_extends : expr option;c_body : property list;
}and property_prop = | Static| Public| Private| Protected
val str_of_name : ('a * 'b) -> 'aval tok_of_name : ('a * 'b) -> 'bval unwrap : ('a * 'b) -> 'a