Size: a a a

2020 November 29

к

кана in Haskell
то есть нужен
MonadLogger (SqlT IO)
а тот скорее всего просто лифтит из
MonadLogger IO
источник

DB

Danil Berestov in Haskell
Ваще лишний констрейнт
источник

DB

Danil Berestov in Haskell
походу
источник

к

кана in Haskell
да, похоже на то
источник

к

кана in Haskell
а ну вообще все зависит еще от того что передать в runLoggerT
источник

R

Roman in Haskell
Roman
-- >>> :t test
-- <interactive>:1:1: error:
--     Couldn't match type ‘At 0 '[]’ with ‘"a"’
--       arising from a use of ‘test’
test :: (At 0 xs ~ "a", DeepSeq xs) => Proxy xs -> Proxy xs
test = id

GHC тайпчекает сигнатуру функции, но выдает ошибку при попытке спросить тип этой функции
ну хоть так работает:

-- >>> :t test
-- test :: Proxy '["a", "b"] -> Proxy '["a", "b"]
test :: (xs ~ ("a" ': "b" ': rest), DeepSeq xs) => Proxy xs -> Proxy xs
test = id
источник

DB

Danil Berestov in Haskell
кана
а ну вообще все зависит еще от того что передать в runLoggerT
В плане?
источник

к

кана in Haskell
ну вдруг там в runLoggerT  передается LogFunctionT который чет делает с IO
источник

к

кана in Haskell
или я запутался в этих функциях, но констрейнт точно выглядит лишним
источник

DB

Danil Berestov in Haskell
кана
ну вдруг там в runLoggerT  передается LogFunctionT который чет делает с IO
И тогда не заведётся?
источник

к

кана in Haskell
а нет, может и не лишним, этот констрейнт ограничивает m в LoggerT, и там я так понимаю должен быть настоящий логгер
источник

к

кана in Haskell
блин как же сложно логгеры делают, это же одна функция String -> IO ()
источник

DB

Danil Berestov in Haskell
кана
блин как же сложно логгеры делают, это же одна функция String -> IO ()
>:(
источник

YS

Yan Shkurinskiy in Haskell
кана
блин как же сложно логгеры делают, это же одна функция String -> IO ()
У меня так) (только Text)
источник

DB

Danil Berestov in Haskell
Yan Shkurinskiy
У меня так) (только Text)
а че не BS
источник

YS

Yan Shkurinskiy in Haskell
Danil Berestov
а че не BS
а вот так!
источник

R

Roman in Haskell
че-то эта TrySpecializeAs идея позволяет делать какие-то совершенно магические штуки:

-- >>> :t xsHasA
-- xsHasA :: Proxy ("a" : xs')
xsHasA :: "a" `Elem` xs => Proxy xs
xsHasA = Proxy

-- >>> :t xsHasB
-- xsHasB :: Proxy ("b" : xs')
xsHasB :: "b" `Elem` xs => Proxy xs
xsHasB = Proxy

-- >>> :t automaticallyReorderTypeVars
-- automaticallyReorderTypeVars :: [Proxy ("a" : "b" : xs')]
automaticallyReorderTypeVars = [xsHasA, xsHasB]
источник

к

кана in Haskell
а где тут TrySpecializeAs?
источник

R

Roman in Haskell
кана
а где тут TrySpecializeAs?
class (x :: a) `Elem` (xs :: [a])
type family x `ElemMatch` xs :: Constraint where
   x `ElemMatch` (x ': xs) = ()
   x `ElemMatch` (_ ': xs) = x `Elem` xs
instance (TrySpecializeAs (x ': xs') xs, x `ElemMatch` xs) => x `Elem` xs
источник

М

Михаил in Haskell
Всем добрый вечер, если оффтоп, то прошу прощение, и буду рад если кто то сможет ответить на вопросы,
сам вопрос, бывает ли haskell junior, без звания как минимум middle в другом языке?
Ну или, сколько необходимо изучать haskell чтобы написать того же бота для vk?
С тем же go, и моим бэкграундэм(знание основ ооп на java), я справлюсь за пару недель с языком, а далее дело техники, а в случае haskell что будет меня ждать? Какой примерно срок обучения до этого уровня у марафонцев?
источник