Improved Error monad, uses a delegate Error<T> now instead of a class, which means no need for Error.Return(...) in methods, you can simply return () => ...
Merge branch 'master' of https://github.com/louthy/csharp-monad.git