ну например есть функция void :: Functor f => f a -> f () если её вызвать на Node, то чем будет f, а чем a и как кмпилятор дожен это понять?
Ну, если Node Int функтор, тогда будет Node Int (). А если с K Int, тогда хотелось бы, чтобы получилось Node () Int. Но тут как с рекордами. Нельзя записать instance Functor (Node {load::Int}) и потом частично применить к переменной типа a, чтобы Node полностью создался
Обсуждают сегодня