Swapped L,R to R,L for the Either monad, I think it makes more sense to have the 'correct' value first, and the 'failure' or secondary value second.
Added: Mconcat, GetDual, AsEnumerable, AsEnumerable to Option<T> and Either<R,L>
Added: AsEnumerable, AsEnumerable to Error<T>
Made Mconcat an extension of IEnumerable<M<T>> where M is the type of monad.
Added Mappend and Mconcat to Error<T> and Either<T>
Merge branch 'master' of https://github.com/louthy/csharp-monad.git