diff --git a/LICENCE b/LICENCE
--- a/LICENCE
+++ b/LICENCE
@@ -1,5 +1,5 @@
-Copyright 2018 Commonwealth Scientific and Industrial Research Organisation
-(CSIRO) ABN 41 687 119 230.
+Copyright (c) 2018-2019, Commonwealth Scientific and Industrial Research Organisation (CSIRO) ABN 41 687 119 230.
+Copyright (c) 2020-2024 Tony Morris
 
 All rights reserved.
 
diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,8 @@
+0.0.12
+
+* Widen dependency bounds
+* Use fewer imports
+
 0.0.11
 
 * Implement shuffling
diff --git a/list-zipper.cabal b/list-zipper.cabal
--- a/list-zipper.cabal
+++ b/list-zipper.cabal
@@ -1,26 +1,26 @@
 name:               list-zipper
-version:            0.0.11
+version:            0.0.12
 license:            BSD3
 license-file:       LICENCE
 author:             Tony Morris <ʇǝu˙sıɹɹoɯʇ@ןןǝʞsɐɥ>
 maintainer:         Tony Morris <ʇǝu˙sıɹɹoɯʇ@ןןǝʞsɐɥ>
 copyright:          Copyright (c) 2018-2019, Commonwealth Scientific and Industrial Research Organisation (CSIRO) ABN 41 687 119 230.
-                    Copyright (c) 2020-2021 Tony Morris
+                    Copyright (c) 2020-2024 Tony Morris
 synopsis:           A list zipper
 category:           Data
 description:
   <<https://system-f.gitlab.io/logo/systemf-450x450.jpg>>
   .
   A list zipper.
-homepage:           https://github.com/qfpl/list-zipper
-bug-reports:        https://github.com/qfpl/list-zipper/issues
+homepage:           https://github.com/system-f/list-zipper
+bug-reports:        https://github.com/system-f/list-zipper/issues
 cabal-version:      >= 1.10
 build-type:         Simple
 extra-source-files: changelog.md
 
 source-repository   head
   type:             git
-  location:         git@github.com:qfpl/list-zipper.git
+  location:         git@github.com:system-f/list-zipper.git
 
 library
   default-language:
@@ -28,15 +28,15 @@
 
   build-depends:
                     base >= 4.8 && < 5
-                    , deriving-compat >= 0.5 && < 0.6
-                    , lens >= 4 && < 5
-                    , comonad >= 5.0 && < 6.0
+                    , deriving-compat >= 0.5 && < 1
+                    , lens >= 4 && < 6
+                    , comonad >= 5.0 && < 6
                     , MonadRandom >= 0.5 && < 1
                     , random-shuffle >= 0.0.4 && < 1
-                    , semigroupoids >=5.1 && <5.4
-                    , semigroups >=0.16 && <0.20
-                    , mtl >=2.2 && <2.3
-                    , transformers >=0.4.1 && <5.5
+                    , semigroupoids >= 5.1 && < 7
+                    , semigroups >= 0.16 && < 1
+                    , mtl >= 2.2 && < 3
+                    , transformers >= 0.4.1 && < 1
 
   ghc-options:
                     -Wall
@@ -53,19 +53,19 @@
 
 test-suite          tests
 
-  build-depends:      QuickCheck >= 2.9.2 && < 2.14
-                    , base >= 4.8 && < 5
-                    , checkers >= 0.4.6 && < 0.5
+  build-depends:      base >= 4.8 && < 5
+                    , checkers >= 0.4.6 && < 1
                     , list-zipper
-                    , lens >= 4 && < 4.19
-                    , tasty >= 0.11 && < 1.2
-                    , tasty-hunit >= 0.9 && < 0.11
-                    , tasty-quickcheck >= 0.8.4 && < 0.11
-                    , hedgehog >= 0.6 && < 1.1
-                    , hedgehog-fn >= 0.6 && < 1.1
-                    , tasty-hedgehog >= 0.2 && < 1.1
-                    , transformers >=0.4.1 && <5.5
-                    , mtl >=2.2 && <2.3
+                    , lens >= 4 && < 6
+                    , tasty >= 1 && < 2
+                    , tasty-hunit >= 0.9 && < 1
+                    , tasty-quickcheck >= 0.8.4
+                    , hedgehog >= 1.5 && < 2
+                    , hedgehog-fn >= 1 && < 2
+                    , QuickCheck >= 2.15 && < 3
+                    , mtl >= 2.2 && < 3
+                    , tasty-hedgehog >= 0.2
+                    , transformers >= 0.4.1 && < 1
 
   type:
                     exitcode-stdio-1.0
diff --git a/src/Data/ListZipper.hs b/src/Data/ListZipper.hs
--- a/src/Data/ListZipper.hs
+++ b/src/Data/ListZipper.hs
@@ -1,9 +1,9 @@
 {-# LANGUAGE NoImplicitPrelude #-}
 {-# LANGUAGE TemplateHaskell #-}
 {-# LANGUAGE FlexibleInstances #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
 {-# LANGUAGE FunctionalDependencies #-}
 {-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE TypeOperators #-}
 
 module Data.ListZipper(
 -- * data types
@@ -108,27 +108,22 @@
 
 import System.Random.Shuffle
 import Control.Monad.Random.Class
-
-
 import Control.Applicative(Applicative(pure, (<*>)), Alternative((<|>), empty), (<*))
 import Control.Category((.), id)
 import Control.Comonad(Comonad(duplicate, extract))
 import Control.Lens(Each(each), Reversing(reversing), Ixed(ix), Rewrapped, Wrapped(Unwrapped, _Wrapped'), IxValue, Index, Prism', Lens', Traversal', _Wrapped, (^.), iso, (&), _1, _2)
-import Control.Monad
 import Control.Monad.Error.Class(MonadError(throwError, catchError))
 import Control.Monad.Fail(MonadFail(fail))
 import Control.Monad.Fix(MonadFix(mfix))
 import Control.Monad.Reader(MonadReader(ask, local, reader))
 import Control.Monad.State(MonadState(get, put, state))
-import qualified Control.Monad.Fail as Fail(fail)
-import Data.Foldable
 import Data.Traversable(Traversable(traverse))
 import Data.Semigroup.Traversable(Traversable1(traverse1))
-import Control.Monad(Monad((>>=), return), MonadPlus(mplus, mzero), (=<<))
+import Control.Monad(Monad((>>=), return), MonadPlus(mplus, mzero), (=<<), replicateM)
 import Data.Bool(Bool)
 import Data.Eq(Eq((==)))
 import Data.Eq.Deriving(deriveEq1)
-import Data.Foldable(Foldable(toList, foldMap))
+import Data.Foldable(Foldable(toList, foldMap, length))
 import Data.Function(flip)
 import Data.Functor(Functor(fmap), (<$>), (<$))
 import Data.Functor.Alt(Alt((<!>)))
@@ -540,7 +535,7 @@
 instance MonadFail (ListZipperOp a) where
   fail s =
     ListZipperOp (\_ ->
-      Fail.fail s
+      fail s
     )
 
 instance MonadError () (ListZipperOp a) where
