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

@ndtimofeev:
ndtimofeev

А зачем parseJSON завёрнут в Parser от attoparsec? В этом же решительно никакого смысла: Value за тебя уже попарсили и отдают аргументом, ничего полезного внутри монады ты уже сделать не можешь, отстрелить ногу — запросто. Что вообще происходит?

@Anatolych:
Anatolych

хочу уметь передавать дефолтные значения из IO в parseJSON aeson'овский, типа так: lpaste.net
на стаковерфлов есть что-то совсем дикое и с дженериками, и, вроде, не совсем то: stackoverflow.com
подскажите куда копать позязя.

@segfault:
segfault

Prelude Data.Aeson Data.Time.Clock> t <- getCurrentTime 
Prelude Data.Aeson Data.Time.Clock> encode t
"\"2014-11-08T13:04:08.646Z\""
Prelude Data.Aeson Data.Time.Clock> (decode $ encode t) :: Maybe  UTCTime
Nothing
Prelude Data.Aeson Data.Time.Clock> 

А это же бага ?

@segfault:
segfault

А ни у кого не было проблем с aeson ? Она нормально кодирует/декодирует json ?
У меня есть файл, я его читаю с помощью строгой байтостроки и закрываю, потом декодирую aeson, модифицирую и снова кодирую aeson в ленивую байтостроку, и записываю в файл. Дак вот, иногда, когда размер файла достигает примерно 2-4 тысяч байт я обнаруживаю что после очередного запуска программы файл пуст. Догадываюсь что дело в чтении/сохранении, хотя может и aeson виновать, я не знаю кто и когда портит файл.

@qrilka:
qrilka

а нет какой-нибудь ручки в deriveJSON чтоб для простых ADT типа A | B (когда заведомо у конструкторов нет параметров) он не генерил результат вида {"A" : []}, а тупо "A"?

@qrilka:
qrilka

aeson фейлится в GHC 7.4.1 — gist.github.com