
SimpleX
01.10.2016
17:56:39
:D

blkmrkt
01.10.2016
17:59:27

SimpleX
01.10.2016
17:59:42
Зависимости кодекса?

blkmrkt
01.10.2016
17:59:52
угу

Google

SimpleX
01.10.2016
18:00:15
А покажи свой extra-deps?
Если кодекс собрался, попробуй снова поставить HVN

blkmrkt
01.10.2016
18:01:11
хотел сказать спасибо большущее https://artyom.me, если он тут, за замечательную статью про aeson

Anatolii
01.10.2016
21:50:10
Да, там прямо хороший разбор по косточками

blkmrkt
01.10.2016
22:54:22
а почему hlint/ghc-mod не ловит некоторые ошибки, например типы ф-й и типы того что они фактически возвращают?
Компиляция ломается, а iDE молчит. В то же время ошибки синтаксиса подсвечиваются

Anatolii
02.10.2016
08:59:01
А кто тебе ошибку выдаёт?
Ты этот код пробовал в ghci загружать?

Vladimir
02.10.2016
09:00:54
Может, проблема в отступах и надо рекорды с новой строки объявлять

Anatolii
02.10.2016
09:02:15
Ха
Оно ж конфликтует с id из Prelude
Я в сообщение вчитался

Google

Vladimir
02.10.2016
09:03:00
Я тоже

blkmrkt
02.10.2016
10:24:50
Оно ж конфликтует с id из Prelude
Ну и еще с id в тройке других записей в этом же модуле. Дело в том ведь что DuplicateRecordFields позволили мне это определить в одном файле, но как теперь недвусмысленно референснуть один из них тут же?

Vladimir
02.10.2016
10:26:16
"the renamer will determine which is meant at use sites."
походу оно само как-то должно
https://ghc.haskell.org/trac/ghc/wiki/Records/OverloadedRecordFields/DuplicateRecordFields тут написано, Вроде, как можно, а как нельзя
с селекторами просто так все равно нельзя, походу(
к тому же, id из Prelude объявлен не в том файле же, где DublicateRecordFields, поэтому ренеймер не будет трогать функцию id из прелюда, отсюда и некомпиляция, походу

blkmrkt
02.10.2016
10:29:57
Вот на SO пост объясняет проблему, и в ответе вроде вариант который должен работать, но нифига подобного: https://stackoverflow.com/questions/37395098/how-to-disambiguate-selector-function

Vladimir
02.10.2016
10:30:35
а если сделать import Prelude hiding (id) ?

blkmrkt
02.10.2016
10:30:49

Vladimir
02.10.2016
10:30:51
чтобы id из прелюда не вылезал
и конфилик был только с твоими объявленными под DuplicateRecordFields функциями
конфликт*

blkmrkt
02.10.2016
10:31:20

Vladimir
02.10.2016
10:32:02
я сам не пользовал это расширение, сочинял уникальные имена для функций :DF

blkmrkt
02.10.2016
10:40:13
во всех сорцах включена прагма DuplicateRecordFields

Vladimir
02.10.2016
10:42:40
Я тоже парсил чужой, но просто руками писал инстансы fromJSON в таком случае. Не очень удобно, но у меня и приложение не очень большое было
дык, вроде (id t :: Int)
или что там

Google

Vladimir
02.10.2016
11:20:02
а, рекорд, к которому функция принадлежит, а не тип возвращаемого значения, пардом, ошибся
по-моему нет. Насколько я понял, эта штука работает так - если из контекста понятно, из какого рекорда ты функцию используешь, то на этапе компиляции ее переименовывают вместе со всеми использованиями. А если не понятно, то извиняй, чет не вышло)

Anatolii
02.10.2016
11:21:06
id t попробуй в скобки взчть

Vladimir
02.10.2016
11:21:32
т.е. в твоем случае должно быть понятно, что это за функция, в зависимости от типа t

Anatolii
02.10.2016
11:22:30
А попробуй сюда функцию полностью выложить
Там компилятор есть откуда тип t вывести?

Vladimir
02.10.2016
11:23:31
ну судя по верхним скринам, там кейс по Maybe t
поэтому, по идее, тип должен быть указан внутри Maybe
и понятен
Maybe task, т.е.

Anatolii
02.10.2016
11:26:47
Там на скрине выше в case стоит Just t а потом обращается к st

Vladimir
02.10.2016
11:27:51
тогда застыли в ожидании кода)

Вжик
02.10.2016
13:12:12
подкиньте группу по Scala

Nikolay
02.10.2016
13:12:33
https://telegram.me/scala_ru

Вжик
02.10.2016
13:18:21
благодарю

Mansur
02.10.2016
14:31:01
Хотелось printf или забыто (++)?

Kill me pls
04.10.2016
16:49:13
Ребят, кто понял теорию категорий?

Evgenij
05.10.2016
15:48:41

blkmrkt
05.10.2016
19:53:40
блин ну что за фигня, как к id то обратиться тут?

Anatolii
05.10.2016
20:02:19
Там printf надо

Google

Anatolii
05.10.2016
20:02:52
Тв спрятал id из Prelude?

blkmrkt
05.10.2016
20:03:01

Anatolii
05.10.2016
20:03:14
И что теперь пишет?

blkmrkt
05.10.2016
20:08:28
И что теперь пишет?
ну тож самое:
Ambiguous occurrence ‘id’
It could refer to either the field ‘id’,
imported from ‘VKAPI’ at app/Harvester.hs:34:1-22
or the field ‘id’,
imported from ‘VKAPI’ at app/Harvester.hs:34:1-22
or the field ‘id’, defined at app/Harvester.hs:59:28
or the field ‘id’, defined at app/Harvester.hs:51:3

Anatolii
05.10.2016
20:09:11
Очень странно
Я проверял у себя
Все норм
Это ты stack build запустил?

blkmrkt
05.10.2016
20:11:18
ага, ghc-mod то же самое

Anatolii
05.10.2016
20:11:58
Похоже что у тебя не 8
Но я помню что ты говорил что 8

blkmrkt
05.10.2016
20:12:14
у меня 2 типа с id в этом же самом файле, и 2 типа с id из VKAPI, во всех файлах включено {-# LANGUAGE DuplicateRecordFields #-}
8.0.1

Anatolii
05.10.2016
20:12:29
Агп

Kit
05.10.2016
20:12:31
а какой сейчас тип у id? раз ты спрятал его из Prelude

Anatolii
05.10.2016
20:12:35
Так не прокатит

blkmrkt
05.10.2016
20:12:46
>stack ghc — —version
>The Glorious Glasgow Haskell Compilation System, version 8.0.1

Anatolii
05.10.2016
20:12:49
Оно только в пределах 1го модуля может быть
Хотя погоди
Странно это все

Google

blkmrkt
05.10.2016
20:13:29
угу, странно
вот в этом треде расписан именно такой же пример с которым у меня проблема, но ОП пишет внизу следующее:
Of course it can easily be fixed by adding a type annotation but ideally I would rather not use such an annotation in this case.
Не вдупляю как еще можно добавить аннотацию типа к id.

Anatolii
05.10.2016
20:14:38
А попробуй в модуле vkapi
Написать функцию которая к id обращается

blkmrkt
05.10.2016
20:14:51
сек

Anatolii
05.10.2016
20:14:58
Ещё вариант
Можно попробовать сделать модуль
И в него за импортить эти два
А потом этот модуль уже за импортить туда где ты хочешь им воспользоваться

blkmrkt
05.10.2016
20:17:24

Anatolii
05.10.2016
20:17:49
Та беда