diff --git a/Control/Monad/Reader/Trie.hs b/Control/Monad/Reader/Trie.hs
--- a/Control/Monad/Reader/Trie.hs
+++ b/Control/Monad/Reader/Trie.hs
@@ -28,29 +28,21 @@
   ) where
 
 import Control.Applicative
-import Control.Arrow (first,(&&&))
 import Control.Comonad
 import Control.Monad.Trans.Class
-import Control.Monad.Trans.Reader
-import Control.Monad.Trans.Identity
 import Control.Monad.IO.Class
 import Control.Monad.Reader.Class
 import Control.Monad.Representable
 import Control.Monad.Writer.Class as Writer
-import Data.Bits
 import Data.Distributive
-import Data.Int
-import Data.Function (on)
 import Data.Functor.Bind
 import Data.Functor.Identity
 import Data.Foldable
 import Data.Key
 import Data.Monoid
 import Data.Traversable
-import Data.Semigroup
 import Data.Semigroup.Foldable
 import Data.Semigroup.Traversable
-import Data.Word
 import Prelude hiding (lookup)
 
 data a := b where Refl :: a := a
diff --git a/Data/Semigroupoid/Trie.hs b/Data/Semigroupoid/Trie.hs
--- a/Data/Semigroupoid/Trie.hs
+++ b/Data/Semigroupoid/Trie.hs
@@ -19,27 +19,23 @@
   ) where
 
 import Control.Applicative
-import Control.Arrow (first,(&&&))
 import Control.Comonad
 import Control.Monad.Representable
 import Control.Monad.Reader
 import Control.Monad.Reader.Trie
-import Data.Bits
 import Data.Distributive
 import Data.Function (on)
 import Data.Functor.Adjunction
+import Data.Functor.Representable
 import Data.Functor.Bind
 import Data.Foldable
-import Data.Int
 import Data.Key
 import Data.Monoid
 import Data.Traversable
-import Data.Semigroup
 import Data.Semigroup.Traversable
 import Data.Semigroup.Foldable
 import Data.Semigroupoid
 -- import Data.Semigroupoid.Ob
-import Data.Word
 
 data a :->: b where
   T :: HasTrie a => Trie a b -> a :->: b
@@ -126,7 +122,7 @@
   T m >>- f = T (tabulate (\a -> index (runT (f (index m a))) a))
   
 instance HasTrie a => Monad ((:->:) a) where
-  return a = T (return a)
+  return a = T (pureRep a)
   (>>=) = (>>-)
   _ >> m = m
 
diff --git a/representable-tries.cabal b/representable-tries.cabal
--- a/representable-tries.cabal
+++ b/representable-tries.cabal
@@ -1,6 +1,6 @@
 name:          representable-tries
 category:      Data Structures, Functors, Monads, Comonads
-version:       0.1
+version:       0.2
 license:       BSD3
 cabal-version: >= 1.6
 license-file:  LICENSE
@@ -19,7 +19,7 @@
 
 library
   build-depends: 
-    adjunctions >= 0.7 && < 0.8,
+    adjunctions >= 0.8 && < 0.9,
     array >= 0.3.0.2 && < 0.4,
     base >= 4 && < 4.4,
     comonad >= 1.0 && < 1.1,
@@ -29,7 +29,7 @@
     distributive >= 0.1.1 && < 0.2,
     keys >= 0.1.0.1 && < 0.2,
     mtl >= 2.0.1.0 && < 2.1,
-    representable-functors >= 0.1.0.1 && < 0.2,
+    representable-functors >= 0.2 && < 0.3,
     semigroups >= 0.3.4 && < 0.4,
     semigroupoids >= 1.1.1 && < 1.2.0,
     transformers >= 0.2.0 && < 0.3
@@ -38,5 +38,5 @@
     Control.Monad.Reader.Trie
     Data.Semigroupoid.Trie
 
-  ghc-options: -Wall -fno-warn-unused-imports
+  ghc-options: -Wall
 
