
Anatolii
27.08.2016
14:30:41
то что выше это мне GHC вывел
GHCMod
а вон я ниже написал
и оно компилируется

Google

Anatolii
27.08.2016
14:31:18
я SO увидел в коде:)
сам не поверил

Denis
27.08.2016
14:33:18
Сейчас бы еще объяснение, почему так выходит.
Какая-то маскировка типов?

Anatolii
27.08.2016
14:33:40
это может @qnikst нам поможет:)

Alexander
27.08.2016
14:34:18
А что?

Anatolii
27.08.2016
14:34:33
вот код
--pDSN :: Text.Parsec.Prim.ParsecT String () Data.Functor.Identity.Identity ([Char], [Char])
pDSN :: Parser (String, String)
pDSN = do
string "dsn"
equalsSign
string "dbi:"
dbType <- many (noneOf ":")
char ':'
--dbInfo <- pDBInfo
return (dbType, "")
закоментированная строка первая
тип который GhcMod вывел
после него я написал тип руками
и то и то компилится
мы с @DenisLebedev не понимаем как так это просходит:)

Google

Alexander
27.08.2016
14:35:41
А что не так? Он парсект или какой там type раскрыл

Anatolii
27.08.2016
14:36:10
Parser - это алиас на вот то что сверху?

Denis
27.08.2016
14:36:42

Anatolii
27.08.2016
14:36:55
и да, это тоже

Alexander
27.08.2016
14:38:35
А ошибка какая? Может что не импортировпно?

Anatolii
27.08.2016
14:39:17
сейчас попробую
опять

Denis
27.08.2016
14:39:42
Не импортированы модули Parsec были, использовались комбинаторы. Но ведь без явного указания типов все работало! И тип ghci выводил, а использовать его не давал.
Text.ParserCombinators.Parsec.Prim
Что-то такое было импортировано, с телефона сложно посмотреть.

Alexander
27.08.2016
14:41:40
Есть такая проблема
Вывести может, а явно написать нельзя

Anatolii
27.08.2016
14:41:59
он мне пишет что не моджет найти пакет

Alexander
27.08.2016
14:42:02
Хотя хз проблемы ли

Anatolii
27.08.2016
14:42:07
и за импортить я его не могу
ну да
это они просто скрыли реализацию
пробелема была пока не было понятно что можно кратко написать
а компилятор c -Wall
Ругался постоянно

Google

Denis
27.08.2016
14:43:29
Кстати, раз ты тут. Чем комбинаторы отличаются от обычного парсека и что лучше использовать для разбора всяких конфигов?

Anatolii
27.08.2016
14:45:22
дак парсек же на комбинаторах сделан вроде
и помойму парсек идеален для парсинга конфиг файлов
я прям балдею

Alexander
27.08.2016
14:48:35

Denis
27.08.2016
14:49:00
Да, он хорош. Но я имел в виду модули Parsec и ParserCombinators из одного и того же пакета Parsec. Один и тот же алгоритм можно реализовать с помощью обоих модулей.

Anatolii
27.08.2016
14:49:34
сам Parsec вроде просто 3 других модуля импортит
Prim
Char
Combinators
там может и есть какие функции

Alexander
27.08.2016
14:49:51
Они одно alias другого
Гхц ничего не угадывает
Что написали то и выводит
Или ругается на конфликт имен

Anatolii
28.08.2016
07:35:51
а для AttoParsec есть документация? или надо в сорцах смотреть?

Denis
28.08.2016
13:38:10

Vladimir
28.08.2016
14:12:15

Google

Denis
28.08.2016
14:13:26

Vladimir
28.08.2016
14:13:46
нигде не вижу слова "deprecated"

Denis
28.08.2016
14:14:28
Вот, что я вижу с телефона
https://hackage.haskell.org/package/attoparsec-0.13.0.2/docs/Data-Attoparsec.html

Vladimir
28.08.2016
14:16:25
https://github.com/bos/attoparsec/commits/master
> Commits on Jun 30, 2016

Admin
ERROR: S client not available

Denis
28.08.2016
14:17:35
Глюки гитхаба какие-то, наверное

Vladimir
28.08.2016
14:18:00
да это не глюки
или ты не знал, что в коммите есть запись о дате, но это ровным счетом ничего не значит?

Denis
28.08.2016
14:20:39

Anatolii
28.08.2016
14:45:42
Блин, я всегда из Hoogle попадал на страницу доков
Только сейчас понял что пакеты на хэкэдже нажимаемы
Я на гитхабе сидел читал
Там некоторые пакеты и вправду Deprecated
Но есть указания чем пользовался вместо них
Так что все ок с либой

Google

Anatolii
28.08.2016
14:47:38
Там даже для ghc 8 задел есть
и тесты
я думаю что Брайн не оставит такую важную либу без поддержки

Alexander
28.08.2016
14:50:12

Anatolii
28.08.2016
14:51:01
под Data.AttoParsec есть куча сабмодулей
This module is deprecated. Use Data.Attoparsec.ByteString instead.
даже вон сказали куда идти

Vladimir
28.08.2016
14:54:44
ахаха
это про модуль было

Ekin
28.08.2016
14:57:42
Есть же, например, polyparse, зачем вам parsec? Parsec проник во всн учебники, но это не значит, что он лучший, или что он стандарт.

Alexander
28.08.2016
15:13:19
Attoparsec /= parsec

Anatolii
28.08.2016
15:28:13
Parsec я нашел в учебниках, ты прав
а вот AttoParsec - это про другое
совсем
а за PolyParsec спасибо
посмотрю

@proDOT
28.08.2016
15:36:19
Indent. I use..
Tab – 157
??????? 42%
4 spaces – 100
???? 27%
2 spaces – 96
???? 26%
1 space – 6
▫️ 2%
3 spaces – 4
▫️ 1%
5 or 6 or 7 spaces – 3
▫️ 1%
8+ spaces – 3
▫️ 1%
8 spaces – 2
▫️ 1%
? 371 people voted so far.

Semyon
28.08.2016
17:48:34

Index
28.08.2016
17:49:57
А какие аргументы против?

Semyon
28.08.2016
17:51:47
во-первых, довольно часто уезжает индентация
например в objc
с которым я имел несчастье очень долго работать