dependent-sum-aeson-orphans 0.2.0.0 → 0.2.1.0
raw patch · 2 files changed
+17/−10 lines, 2 filesdep ~basedep ~constraintsdep ~constraints-extrasPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: base, constraints, constraints-extras, dependent-map, dependent-sum
API changes (from Hackage documentation)
+ Data.Dependent.Sum.Orphans: instance Data.Constraint.Forall.ForallF Data.Aeson.Types.ToJSON.ToJSON r => Data.Aeson.Types.ToJSON.ToJSON (Data.Some.Some r)
Files
dependent-sum-aeson-orphans.cabal view
@@ -1,5 +1,5 @@ name: dependent-sum-aeson-orphans-version: 0.2.0.0+version: 0.2.1.0 license: BSD3 license-file: LICENSE author: Obsidian Systems@@ -7,15 +7,20 @@ copyright: 2018 Obsidian Systems LLC build-type: Simple cabal-version: >=1.10-description: JSON instances for DSum and DMap+description: JSON instances for DSum, DMap, and Some.+synopsis: JSON instances for DSum, DMap, and Some+category: json+tested-with:+ GHC ==8.0.2 || ==8.2.2 || ==8.4.4 || ==8.6.5 library exposed-modules: Data.Dependent.Sum.Orphans- build-depends: base >=4.9 && <4.12- , aeson >= 1.2 && <1.5- , dependent-map- , dependent-sum- , constraints- , constraints-extras+ build-depends:+ base >=4.9 && <4.13,+ aeson >= 1.2 && <1.5,+ constraints >= 0.10.1 && < 0.11,+ constraints-extras >= 0.3.0 && < 0.4,+ dependent-map >= 0.3 && < 0.4,+ dependent-sum >= 0.6.1 && < 0.7 hs-source-dirs: src default-language: Haskell2010
src/Data/Dependent/Sum/Orphans.hs view
@@ -1,5 +1,4 @@ {-# LANGUAGE FlexibleContexts #-}-{-# LANGUAGE MonoLocalBinds #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-}@@ -14,7 +13,7 @@ import Data.Dependent.Map (DMap, GCompare) import qualified Data.Dependent.Map as DMap import Data.Dependent.Sum-import Data.Some (Some)+import Data.Some (Some(Some)) import qualified Data.Some as Some instance (ForallF ToJSON f, Has' ToJSON f g) => ToJSON (DSum f g) where@@ -33,3 +32,6 @@ instance (FromJSON (Some f), GCompare f, Has' FromJSON f g) => FromJSON (DMap f g) where parseJSON = fmap DMap.fromList . parseJSON++instance (ForallF ToJSON r) => ToJSON (Some r) where+ toJSON (Some (x :: r a)) = whichever @ToJSON @r @a (toJSON x)