UCSD-PL/RefScript — pull request #57 by panagosg7 (2014-10-08 03:02:24+00:00)
Title: Enumerations

Addessing #55

For an enumeration
```
enum E { ADD, SUB, MUL, DIV }
```
`E` has type `enum E`, `E.ADD` has type `{ number | v = 0}` etc.

Also, `E[0]` resolves to a string type: `{ string | v = "ADD"}`

Added some fixes in unification / subtyping:

- `module m`, `class c` and `enum e` are all types that get flattened to an object literal type if needed. This follows TS behavior.