Defines an algebraic data type. Each spec entry is either null (a nullary
case, exposed as a frozen singleton value) or a function from constructor
arguments to the case's fields.
Nothing is written to the global scope: all constructors live on the
returned object.
Defines an algebraic data type. Each spec entry is either
null(a nullary case, exposed as a frozen singleton value) or a function from constructor arguments to the case's fields.Nothing is written to the global scope: all constructors live on the returned object.