Porting Java version of Either to C#
Refactored Either class to accept default values