C# library with an interface for monads and some other monad utilities