to post messages and comments.

А киньте в меня какой статьей по каноническому написанию unit тестов для питона? Как это вообще принято, какие пакеты использовать, как структурировать

а какое хорошее имя можно придумать для

:: Alternative f => f (STM (IO a)) -> IO a

а то часто используется по коду и наверное надо вынести в либу

hPutStr :: Handle -> BL.ByteString -> IO ()
hPutStr hdl lbs = wantWritableHandle "Data.ByteString.Lazy.hPutStr" hdl $ \hdl__ ->
  BL.foldrChunks (go hdl__) (commit hdl__) lbs
 where
  go hdl__ (S.PS ps s l) rest = do
   unless (l == 0) $ withForeignPtr ps $ \p -> do
    _ <- bufWrite hdl__ (p `plusPtr` s) l True
    pure ()
   rest
  commit hdl__ =
   case haBufferMode hdl__ of
    BlockBuffering _   -> do return ()
    _line_or_no_buffering -> do flushWriteBuffer hdl__
                  return ()

    ghc.EXE: unable to load package `text-icu-0.7.0.1'
    ghc.EXE: addLibrarySearchPath: C:\Users\****\backend\windows\deps\usr\local\lib (Win32 error 3): я┐╜я┐╜я┐╜я┐╜я┐╜я┐╜я┐╜ я┐╜я┐╜ я┐╜я┐╜я┐╜я┐╜я┐╜я┐╜я┐╜ я┐╜я┐╜я┐╜я┐╜я┐╜ я┐╜я┐╜я┐╜я┐╜я┐╜я┐╜я┐╜я┐╜я┐╜ я┐╜я┐╜я┐╜я┐╜.
    ghc.EXE: addLibrarySearchPath: C:\Users\****\backend\windows\deps\usr\local\lib (Win32 error 3): я┐╜я┐╜я┐╜я┐╜я┐╜я┐╜я┐╜ я┐╜я┐╜ я┐╜я┐╜я┐╜я┐╜я┐╜я┐╜я┐╜ я┐╜я┐╜я┐╜я┐╜я┐╜ я┐╜я┐╜я┐╜я┐╜я┐╜я┐╜я┐╜я┐╜я┐╜ я┐╜я┐╜я┐╜я┐╜.
    ghc.EXE: addLibrarySearchPath: C:\Users\****\backend\windows\deps\usr\local\lib (Win32 error 3): я┐╜я┐╜я┐╜я┐╜я┐╜я┐╜я┐╜ я┐╜я┐╜ я┐╜я┐╜я┐╜я┐╜я┐╜я┐╜я┐╜ я┐╜я┐╜я┐╜я┐╜я┐╜ я┐╜я┐╜я┐╜я┐╜я┐╜я┐╜я┐╜я┐╜я┐╜ я┐╜я┐╜я┐╜я┐╜.
    ghc.EXE: addLibrarySearchPath: C:\Users\****\backend\windows\deps\usr\local\lib (Win32 error 3): я┐╜я┐╜я┐╜я┐╜я┐╜я┐╜я┐╜ я┐╜я┐╜ я┐╜я┐╜я┐╜я┐╜я┐╜я┐╜я┐╜ я┐╜я┐╜я┐╜я┐╜я┐╜ я┐╜я┐╜я┐╜я┐╜я┐╜я┐╜я┐╜я┐╜я┐╜ я┐╜я┐╜я┐╜я┐╜.
    ghc.EXE: C:\sr\snapshots\7dd4ddea\lib\x86_64-windows-ghc-8.0.2\text-icu-0.7.0.1-JAtt4aKN3S2FwEv7rbv9x1\HStext-icu-0.7.0.1-JAtt4aKN3S2FwEv7rbv9x1.o: unknown symbol `ucnv_getMaxCharSize_57'

СПАСИБО ВИНДАВС Я ТАК И ПОНЯЛ, ЧТО ТЫ ГОВОРИШЬ ЧТО ПУТЬ НЕ ВЕРНЫЙ

1. никогда не жмешь на сохранить пароль в Edge
2. ставишь firefox и выбираешь импортировать данные
3. заходишь в firefox на сайт банка
4. видишь введенный login
5. Profit

Вопрос, как проверить свою память и убедиться, что я когда-то случайно нажал на сохранение данных.

amap :: (Category p, Strong p, Choice p, Profunctor p) => p a b -> p [a] [b]
amap = make . it . tasty where -- (p ||| amap p) where
  -- make :: Profunctor p => p (Either () (a,[a])) (Either () (b,[b])) -> p [a] [b]
  make = dimap view build
    where
     build = either (const []) (uncurry (:))
     view = maybe (Left ()) Right . uncons
  -- it :: (Choice p, Profunctor p) => p (a,[a]) (b,[b]) -> p (Either () (a,[a])) (Either () (b,[b]))
  it = right'
  -- tasty :: (Choice p, Category p, Strong p) => p a b -> p (a,[a]) (b,[b])
  tasty p = p ||| amap p
  (|||) x y = first' x >>> second' y

меняем it на right' и все перестает компилироваться, почему?

В windows 10 build 1703 в консоли появились кривые пиксельные шрифты, ну совсем как нормальная ось становится!

(может правда это я настройки графики понизил, чтобы она не тормозила).

Вот в телеграмме есть broadcast каналы, а есть какие-нибудь хорошие автоматизированные решения для feedback-а? А то может туда проще чем в жуйки писать, но без обратной связи это ж бесполезно