Про систему типов понятно. Я думал, что-то опущено в тексте статьи, но теперь вроде ясно — просто есть максимально общий фреймворк. Отлично.
Насчет IDE я потому и спросил, что в статье только конспективно. Интересно было бы узнать подробности. Скажем, нажимаю я ctrl+space. Что происходит дальше?