diff --git a/dependent-sum-aeson-orphans.cabal b/dependent-sum-aeson-orphans.cabal
--- a/dependent-sum-aeson-orphans.cabal
+++ b/dependent-sum-aeson-orphans.cabal
@@ -1,26 +1,27 @@
-name: dependent-sum-aeson-orphans
-version: 0.2.1.0
-license: BSD3
-license-file: LICENSE
-author: Obsidian Systems
-maintainer: maintainer@obsidian.systems
-copyright: 2018 Obsidian Systems LLC
-build-type: Simple
+name:          dependent-sum-aeson-orphans
+version:       0.3.0.0
+license:       BSD3
+license-file:  LICENSE
+author:        Obsidian Systems
+maintainer:    maintainer@obsidian.systems
+copyright:     2020 Obsidian Systems LLC
+build-type:    Simple
 cabal-version: >=1.10
-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
+description:   JSON instances for DSum, DMap, and Some.
+synopsis:      JSON instances for DSum, DMap, and Some
+category:      json
+tested-with:   GHC ==8.2.2 || ==8.4.4 || ==8.6.5 || ==8.8.4
 
 library
-  exposed-modules: Data.Dependent.Sum.Orphans
+  exposed-modules:  Data.Dependent.Sum.Orphans
   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
+      aeson               >=1.2    && <1.5
+    , base                >=4.9    && <4.14
+    , constraints         >=0.10.1 && <0.13
+    , constraints-extras  >=0.3.0  && <0.4
+    , dependent-map       >=0.3    && <0.5
+    , dependent-sum       >=0.7    && <0.8
+    , some                >=1      && <1.1
+
+  hs-source-dirs:   src
   default-language: Haskell2010
diff --git a/src/Data/Dependent/Sum/Orphans.hs b/src/Data/Dependent/Sum/Orphans.hs
--- a/src/Data/Dependent/Sum/Orphans.hs
+++ b/src/Data/Dependent/Sum/Orphans.hs
@@ -3,18 +3,19 @@
 {-# LANGUAGE TypeOperators #-}
 {-# LANGUAGE UndecidableInstances #-}
 {-# LANGUAGE TypeApplications #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# OPTIONS_GHC -fno-warn-orphans #-}
 
 module Data.Dependent.Sum.Orphans where
 
 import Data.Aeson
-import Data.Constraint
 import Data.Constraint.Forall
 import Data.Constraint.Extras
-import Data.Dependent.Map (DMap, GCompare)
+import Data.Dependent.Map (DMap)
+import Data.GADT.Compare (GCompare)
 import qualified Data.Dependent.Map as DMap
 import Data.Dependent.Sum
-import Data.Some (Some(Some))
-import qualified Data.Some as Some
+import Data.Some (withSomeM, withSome, Some)
 
 instance (ForallF ToJSON f, Has' ToJSON f g) => ToJSON (DSum f g) where
   toJSON ((f :: f a) :=> (g :: g a))
@@ -26,12 +27,12 @@
 instance (FromJSON (Some f), Has' FromJSON f g) => FromJSON (DSum f g) where
   parseJSON x = do
     (jf, jg) <- parseJSON x
-    Some.This (f :: f a) <- parseJSON jf
-    g <- has' @FromJSON @g f (parseJSON jg)
-    return $ f :=> g
+    withSomeM (parseJSON jf) $ \(f :: f a) -> do
+      g <- has' @FromJSON @g f (parseJSON jg)
+      return $ f :=> g
 
 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)
+  toJSON some = withSome some $ \(x :: r a) -> whichever @ToJSON @r @a (toJSON x)
