Types
Provide utilities for manipulating JS types.
type symbol;
type obj_val;
type undefined_val;
type null_val;
type function_val;
type t('a) =
| Undefined: t(undefined_val)
| Null: t(null_val)
| Boolean: t(bool)
| Number: t(float)
| String: t(string)
| Function: t(function_val)
| Object: t(obj_val)
| Symbol: t(symbol);
let test: ('a, t('b)) => bool;
type tagged_t =
| JSFalse
| JSTrue
| JSNull
| JSUndefined
| JSNumber(float)
| JSString(string)
| JSFunction(function_val)
| JSObject(obj_val)
| JSSymbol(symbol);
let classify: 'a => tagged_t;