Functors, applicatives and monads for CSharp developers - part 2

TL;DR: A C# List implementation respecting the category theory Haskell usually uses.

So, after implementing the Maybe Monad in C# respecting category theory yesterday, I decided to implement the list as well, to gain a deeper understanding of it.

This is the result:

Enjoy!