Either can't have a recursive type

Either as a struct causes recursive type errors.
Fixing unassigned local variable errors by using

Visual Studio/CSC cannot deal with variables that reference themselves
in the declaration.

http://msdn.microsoft.com/en-us/library/4y7h161d(v=vs.110).aspx

Default should be OK here but certainly not an optimal fix.
Merge pull request #5 from vmarquez/VisualStudioCompatability

Visual studio compatability