Here is the C# Monad, where is the problem?
问题 Reading a Previous SO Question I was confused to find Eric Lippert saying that an interface cannot be defined in C# for all Monads, using an implementation as below: typeInterface Monad<MonadType<A>> { static MonadType<A> Return(A a); static MonadType<B> Bind<B>(MonadType<A> x, Func<A, MonadType<B>> f); } My problem is all the problems listed in the question seem to have easy solutions: no "higher kinded types" => use parent interfaces no static method in interface. => why use static?! just