LINUX.ORG.RU

История изменений

Исправление qnikst, (текущая версия) :

не получится, поэтому я предлагал сделать вариантом по умолчанию для .=? (Just .) . (.=), тогда в случае если нужно использовать объекты, которые не попадают в объект можно везде использовать .=?.

самое интересное, что у Maybe уже есть инстанс ToJSON и по каким-то причинам его реализация отличается от желаемой автором. В общем-то тут основная проблема в выборе подхода, в текущем варианте, все значения пишутся, Nothing -> null, если нужно не добавлять значение, то нужно не писать его в массив. Вариант вполне логичный и оправданный, учитывая, что в JSON null != undefined.

в варианте желаемом ТС Nothing -> Null, Data Int Nothing -> Object Int, т.е. исключение из общих правил. Вариант тоже логичный, т.к. это исключение, то и решение не обязано быть общим.

предложенный тобой вариант тоже не содержит исключений, но содержит оверхед имеющий смысл только на этапе сборки объекта.

оператор .=? это нечто, что делает возможным добавлять Undefined элементы в массив, которые потом естественным образом фильтруются. Как делать undefined или суммой Just (JSON значение) + Nothing, или ещё одним вариантом Value, и вносить ли их в тип Pair является открытым и не очевидным вопросом.

имхо идеальный вариант будет создать issue на github, и дав туда линк на возможные решения.

Исходная версия qnikst, :

не получится, поэтому я предлагал сделать вариантом по умолчанию для .=? (Just .) . (.=), тогда в случае если нужно использовать объекты, которые не попадают в объект.

самое интересное, что у Maybe уже есть инстанс ToJSON и по каким-то причинам его реализация отличается от желаемой автором. В общем-то тут основная проблема в выборе подхода, в текущем варианте, все значения пишутся, Nothing -> null, если нужно не добавлять значение, то нужно не писать его в массив. Вариант вполне логичный и оправданный, учитывая, что в JSON null != undefined.

в варианте желаемом ТС Nothing -> Null, Data Int Nothing -> Object Int, т.е. исключение из общих правил. Вариант тоже логичный, т.к. это исключение, то и решение не обязано быть общим.

предложенный тобой вариант тоже не содержит исключений, но содержит оверхед имеющий смысл только на этапе сборки объекта.

оператор .=? это нечто, что делает возможным добавлять Undefined элементы в массив, которые потом естественным образом фильтруются. Как делать undefined или суммой Just (JSON значение) + Nothing, или ещё одним вариантом Value, и вносить ли их в тип Pair является открытым и не очевидным вопросом.

имхо идеальный вариант будет создать issue на github, и дав туда линк на возможные решения.