tree: { term: "Statements", statements: [{...}, {...}, ...], sourceRange: [...], sourceSpan: {...} } Но если в term будет "Error" вместо "Statements", то поля statements не будет. Для начала мне бы просто получить содержимое statements в виде строки (и ошибку или пустую строку, если statements нет) Я так понимаю, что вот тут: parseJSON = withObject "ParsedTree" $ \v -> ParsedTree <$> v .: "tree" <*> v .: "path" конструктор ParsedTree получает какое-то значение типа Object в первое поле, а ожидает там строку. Наверное, можно попробовать что-то вида $ \v -> ParsedTree . show <$> v .: "tree" <*> v .: "path" Но только пока непонятно, где какой тип дописать, чтобы все сошлось. Именно такой код ambiguous
Обсуждают сегодня