diff --git a/Data/DiscreteSpaceMap.hs b/Data/DiscreteSpaceMap.hs
--- a/Data/DiscreteSpaceMap.hs
+++ b/Data/DiscreteSpaceMap.hs
@@ -8,6 +8,7 @@
 import Data.Functor.Representable
 import Data.Foldable
 import Data.Traversable
+import Data.Distributive
 import Data.Semigroup.Foldable
 import Data.Semigroup.Traversable
 
@@ -66,6 +67,8 @@
 instance Pos p => Adjustable (Map p) where
   adjust f p z = seek (pos z) . modify f . seek p $ z
 -- | @ `tabulate` :: Pos p => (p -> a) -> Map p a@
+instance Pos p => Distributive (Map p) where
+  distribute = distributeRep
 instance Pos p => Representable (Map p) where
   tabulate f = Map zero (f zero) (tabulateD f)
 
diff --git a/discrete-space-map.cabal b/discrete-space-map.cabal
--- a/discrete-space-map.cabal
+++ b/discrete-space-map.cabal
@@ -1,5 +1,5 @@
 name:                discrete-space-map
-version:             0
+version:             0.0.1
 synopsis:            A discrete space map.
 description:         A discrete space map implemented as a zipper on an infinite perfect binary tree.
 homepage:            https://github.com/sjoerdvisscher/discrete-space-map
@@ -16,7 +16,8 @@
   other-modules:       Data.DiscreteSpaceMap.Internal
   build-depends:       base ==4.6.*,
                        comonad ==3.0.*,
-                       comonads-fd ==3.0.*,
+                       comonads-fd >=3.0.1 && <3.1,
                        keys ==3.0.*,
                        semigroupoids ==3.0.*, 
-                       representable-functors ==3.0.*
+                       distributive ==0.3.*,
+                       representable-functors == 3.1.*
