&gt; C# not only has built-in monad comprehensions<p>IIRC linq is just a structural transformation. Most languages can define monadic instances, that&#x27;s not the difficulty (or the value)<p>&gt; it can straightforwardly simulate type classes<p>Without HKT?<p>&gt; it can straightforwardly simulate traits<p>by copy&#x2F;pasting extension methods?<p>&gt; It also has a full metaobject protocol<p>you can change the inheritance tree of a C# object at runtime?