diff --git a/Data/Rope/Annotated.hs b/Data/Rope/Annotated.hs
--- a/Data/Rope/Annotated.hs
+++ b/Data/Rope/Annotated.hs
@@ -19,7 +19,7 @@
     , empty     -- :: MonoidA f => Ann Empty f 
     , append    -- :: MonoidA f => Ann a f -> Ann b f -> Ann (a :<> b) f
 
-    , unit      -- :: (ReducerA f, Reducer t Rope) => t -> (forall a. Ann (Unit a) f -> r) -> r
+    , unit      -- :: (ReducerA f, Reducer t Rope) => t -> (forall a. Ann (Return a) f -> r) -> r
     , snoc      -- :: (ReducerA f, Reducer t Rope) => t -> Ann a f -> (forall c. Ann (Snoc c t a) f -> r) -> r
     , cons      -- :: (ReducerA f, Reducer t Rope) => Ann a f -> t -> (forall c. Ann (Cons c t a) f -> r) -> r
 
@@ -34,11 +34,12 @@
     , dropWhile -- :: (BreakableA f, Breakable t) => (t -> Bool) -> Ann a f -> (forall n. Ann (Drop n a) f -> r) -> r
 
     -- * Inspecting the ends of the 'Rope'
-    , uncons    -- :: (BreakableA f, Unpackable t) => Ann a f -> Maybe (t, Ann (Unit (Tail t b)) f)
-    , unsnoc    -- :: (BreakableA f, Unpackable t) => Ann a f -> Maybe (Ann (Unit (Init b t)) f, t)
+    , uncons    -- :: (BreakableA f, Unpackable t) => Ann a f -> Maybe (t, Ann (Tail t b) f)
+    , unsnoc    -- :: (BreakableA f, Unpackable t) => Ann a f -> Maybe (Ann (Init b t) f, t)
 
     -- * Type-level constructors
     , Drop, Take, Snoc, Cons, Tail, Init, Return, Nil , (:<>)
+    , Tailed, Inited, Dropped, Taken, Nil, (:>)
 
     -- * Annotations
     -- ** Annotation Product
@@ -89,10 +90,10 @@
 type Snoc a s t = a :<> Return (Token s t)
 
 data Tailed t a 
-type Tail t a = Unit (Tailed t a)
+type Tail t a = Return (Tailed t a)
 
 data Inited a t
-type Init a t = Unit (Inited a t)
+type Init a t = Return (Inited a t)
 
 runAnn :: Ann a f -> (forall b. Ann b f -> r) -> r
 runAnn a k = k a 
diff --git a/rope.cabal b/rope.cabal
--- a/rope.cabal
+++ b/rope.cabal
@@ -1,5 +1,5 @@
 name:           rope
-version:        0.4
+version:        0.5
 license:        BSD3
 license-file:   LICENSE
 author:         Edward A. Kmett
