Free C# immutable collections implementation