diff --git a/lens-sop.cabal b/lens-sop.cabal
--- a/lens-sop.cabal
+++ b/lens-sop.cabal
@@ -1,5 +1,5 @@
 name:                lens-sop
-version:             0.1.0.2
+version:             0.2.0.0
 synopsis:            Computing lenses generically using generics-sop
 description:
   This library contains a definition of generalized lenses that are built
@@ -16,11 +16,11 @@
 license:             BSD3
 license-file:        LICENSE
 author:              Edsko de Vries <edsko@well-typed.com>, Andres Löh <andres@well-typed.com>
-maintainer:          edsko@well-typed.com
+maintainer:          andres@well-typed.com
 category:            Generics
 build-type:          Simple
 cabal-version:       >=1.10
-tested-with:         GHC == 7.6.3, GHC == 7.8.2
+tested-with:         GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.2
 
 source-repository head
   type:                git
@@ -31,7 +31,7 @@
                        Generics.SOP.Lens.Named
                        Generics.SOP.Lens.Computed
   build-depends:       base                 >= 4.6  && < 5,
-                       generics-sop         >= 0.1  && < 2,
+                       generics-sop         >= 0.2  && < 0.3,
                        fclabels             >= 2.0  && < 2.1,
                        transformers         >= 0.3  && < 0.5
   hs-source-dirs:      src
@@ -56,8 +56,3 @@
                        FunctionalDependencies
   if impl (ghc >= 7.8)
     default-extensions:  AutoDeriveTypeable
-  other-extensions:    OverloadedStrings
-                       OverlappingInstances
-                       PolyKinds
-                       UndecidableInstances
-                       CPP
diff --git a/src/Generics/SOP/Lens.hs b/src/Generics/SOP/Lens.hs
--- a/src/Generics/SOP/Lens.hs
+++ b/src/Generics/SOP/Lens.hs
@@ -3,6 +3,7 @@
 -- Intended to be imported qualified
 --
 -- > import Generics.SOP.Lens as GLens
+--
 module Generics.SOP.Lens (
     -- * Generalized lenses
     GLens
@@ -78,15 +79,16 @@
 -------------------------------------------------------------------------------}
 
 glenses :: forall r w a xs. (Generic a, Code a ~ '[xs], Arrow r, ArrowApply w) => NP (GLens r w a) xs
-glenses = case sing :: Sing (Code a) of
+glenses = case sList :: SList (Code a) of
             SCons -> hliftA (\l -> l . sop . rep) np
+            _     -> error "inaccessible"
 
 {-------------------------------------------------------------------------------
   Generalized lenses for representation types
 -------------------------------------------------------------------------------}
 
-np :: forall r w xs. (Arrow r, ArrowApply w, SingI xs) => NP (GLens r w (NP I xs)) xs
-np = case sing :: Sing xs of
+np :: forall r w xs. (Arrow r, ArrowApply w, SListI xs) => NP (GLens r w (NP I xs)) xs
+np = case sList :: SList xs of
       SNil  -> Nil
       SCons -> i . head :* hliftA (. tail) np
 
diff --git a/src/Generics/SOP/Lens/Computed.hs b/src/Generics/SOP/Lens/Computed.hs
--- a/src/Generics/SOP/Lens/Computed.hs
+++ b/src/Generics/SOP/Lens/Computed.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE UndecidableInstances, OverlappingInstances #-}
 module Generics.SOP.Lens.Computed (
     -- * Abstract lenses
     AbstractLens(..)
diff --git a/src/Generics/SOP/Lens/Named.hs b/src/Generics/SOP/Lens/Named.hs
--- a/src/Generics/SOP/Lens/Named.hs
+++ b/src/Generics/SOP/Lens/Named.hs
@@ -46,9 +46,10 @@
 gnamedLenses :: forall a ctxt xs. (Generic a, HasDatatypeInfo a, Code a ~ '[xs], All ctxt xs)
              => (DatatypeName -> ConstructorName -> LensName)
              -> [(String, NamedLens a ctxt)]
-gnamedLenses mkName = case sing :: Sing (Code a) of
+gnamedLenses mkName = case sList :: SList (Code a) of
     SCons -> zip (fieldNames mkName (datatypeInfo pa))
                  (hcollapse $ hcliftA pc (K . NamedLens) totalLenses)
+    _     -> error "inaccessible"
   where
     totalLenses :: NP (GLens (->) (->) a) xs
     totalLenses = GLens.glenses
