Little experiment of how binary heap works with generic types. C#