diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,8 @@
+# 0.4.0.0
+
+* flipped the argument order for `Co.lookup` to be consistent between
+both flavors of RAList apis
+
 # 0.3.0.0
 * changed type from
   `lookupM :: forall (m :: * -> *) a. Monad m => Word64 -> Top a -> m a` to `lookupM :: forall a. Word64 -> Top a -> Either String a`
diff --git a/ralist.cabal b/ralist.cabal
--- a/ralist.cabal
+++ b/ralist.cabal
@@ -1,6 +1,6 @@
 cabal-version:    3.0
 Name:           ralist
-Version:        0.3.0.0
+Version:        0.4.0.0
 License:        BSD-3-Clause
 license-file: LICENSE
 Author:         Lennart Augustsson, Carter Schonwald
diff --git a/src/Data/RAList.hs b/src/Data/RAList.hs
--- a/src/Data/RAList.hs
+++ b/src/Data/RAList.hs
@@ -418,6 +418,8 @@
 instance   FoldableWithIndex Word64 RAList where
 instance   FunctorWithIndex Word64 RAList where
 
+-- TODO: look into ways to make the toList more efficient if needed
+
 instance Foldable RAList  where
   {-# INLINE null#-}
   null = \ x -> case x of Nil -> True ; _ -> False
@@ -931,17 +933,8 @@
                               | otherwise = Node x l (adjt (j-1-w) (w `quot` 2) r)
         adjt _ _ _ = error "Data.RAList.adjust: impossible"
 
--- XXX Make this a good producer
--- | Complexity /O(n)/.
---toList :: RAList a -> [a]
---toList = foldr (:) []
---toList ra = tops ra []
---  where flat (Leaf x)     a = x : a
---        flat (Node x l r) a = x : flat l (flat r a)
---        tops RNil r = r
---        tops (RCons _tot _ t xs) r = flat t (tops xs r)
 
--- XXX Use number system properties to make this more efficient.
+
 -- | Complexity /O(n)/.
 fromList :: [a] -> RAList a
 fromList = Prelude.foldr Cons Nil
diff --git a/src/Data/RAList/Co.hs b/src/Data/RAList/Co.hs
--- a/src/Data/RAList/Co.hs
+++ b/src/Data/RAList/Co.hs
@@ -333,8 +333,8 @@
 lookupM = \ ix tree ->  QRA.lookupM  (reindex tree) ((wLength tree)  - ix)
 
 {-# INLINE lookup #-}
-lookup :: forall a. Word64 -> RAList a -> Maybe a
-lookup =  \ ix tree -> QRA.lookup  (reindex tree) ((wLength tree) - ix )
+lookup :: forall a. RAList a -> Word64 ->  Maybe a
+lookup =  \ (CoIndex tree) ix -> QRA.lookup  tree  ((QRA.wLength tree) - ix )
 
 {-# INLINE lookupCC #-}
 lookupCC :: RAList a -> Word64 -> (a -> r) -> (String -> r) -> r
