Если ты можешь объяснить с чем работаешь и что с этим делаешь, то у тебя есть типы
Воистину! Это концепция АТД (но не алгебраические, а абстрактные типы данных). Вот только компилятору совершенно необязательно мешать мне иметь дело с этими абстракциями )
ЗЫ а с MVar пришлось таки иметь дело, когда Тетрис писал - без него реализовывать абстракцию мутабельного стейта, шарящегося между двумя потоками (таймера и юзерского ввода) было очень печально )