Чтобы добавлять сообщения и комментарии, .

@Annoynimous:
Annoynimous

Как спросить у ОС, какие символы нельзя использовать в именах файлов в конкретной директории?

@Annoynimous:
Annoynimous

Зарелизил на хекедж очередную версию либы; день прошёл не зря. Теперь вот пытаюсь осознать, как в хаскельном торрент-клиенте не сильно костыльно ограничивать скорость приёма/передачи на торрент и на софтину.

@Annoynimous:
Annoynimous

ТУНЕЛЛИРУЮ ТУНЕЛЛИРУЮ
Правда, волшебный автовывод инстенсов так и не осилил. Пришлось остановиться на таком говне:

class (MonadIO o) => EmbedIO o where
type Content o
callback :: o a -> Content o -> IO a

— If the inner monad is IO

data Void

instance EmbedIO IO where
type Content IO = Void
callback action _ = action

и в приложении:

runNPT_ :: NPT a -> NPTState -> IO a
runNPT_ x s = do
runReaderT x s

instance EmbedIO NPT where
type Content NPT = NPTState
callback act cont = runNPT_ act cont

Модифицируемый стейт будет в IORef'ах. Уродливо, но лучше я не придумал; не переписывать же MState, чтобы был кишками наружу, дабы можно было инстенс написать.

@Annoynimous:
Annoynimous

github.com
POEHALI!

@lexszero:
lexszero

Все-таки, полтора года некодинга ничего умного сказываются. Читаю спеку по DHT и страшно туплю над реализацией, а ведь просто префиксное дерево и пачка сообщений протокола.