diff --git a/fixed-length.cabal b/fixed-length.cabal
--- a/fixed-length.cabal
+++ b/fixed-length.cabal
@@ -1,10 +1,10 @@
 Name:             fixed-length
-Version:          0.1
+Version:          0.1.0.1
 License:          BSD3
 License-File:     LICENSE
 Author:           Henning Thielemann <haskell@henning-thielemann.de>
 Maintainer:       Henning Thielemann <haskell@henning-thielemann.de>
-Homepage:         http://code.haskell.org/~thielema/fixed-length/
+Homepage:         http://hub.darcs.net/thielema/fixed-length/
 Category:         Data
 Synopsis:         Lists with statically known length based on non-empty package.
 Description:
@@ -25,13 +25,13 @@
 Build-Type:       Simple
 
 Source-Repository this
-  Tag:         0.1
+  Tag:         0.1.0.1
   Type:        darcs
-  Location:    http://code.haskell.org/~thielema/fixed-length/
+  Location:    http://hub.darcs.net/thielema/fixed-length/
 
 Source-Repository head
   Type:        darcs
-  Location:    http://code.haskell.org/~thielema/fixed-length/
+  Location:    http://hub.darcs.net/thielema/fixed-length/
 
 Library
   Build-Depends:
diff --git a/src/Data/FixedLength.hs b/src/Data/FixedLength.hs
--- a/src/Data/FixedLength.hs
+++ b/src/Data/FixedLength.hs
@@ -1,7 +1,6 @@
 {-# LANGUAGE TypeFamilies #-}
 {-# LANGUAGE Rank2Types #-}
 {-# LANGUAGE EmptyDataDecls #-}
-{-# LANGUAGE FlexibleContexts #-}
 module Data.FixedLength (
    C, Position, List, switch,
    Wrap(Wrap, unwrap),
@@ -242,26 +241,14 @@
 type N7 = GE7 Empty.T; type GE7 list = NonEmpty.T (GE6 list)
 type N8 = GE8 Empty.T; type GE8 list = NonEmpty.T (GE7 list)
 
-i0 :: WrapPos (GE1 list)
-i0 = WrapPos Stop
-
-i1 :: WrapPos (GE2 list)
-i1 = WrapPos $ Succ Stop
-
-i2 :: WrapPos (GE3 list)
-i2 = WrapPos $ Succ $ Succ Stop
-
-i3 :: WrapPos (GE4 list)
-i3 = WrapPos $ Succ $ Succ $ Succ Stop
-
-i4 :: WrapPos (GE5 list)
-i4 = WrapPos $ Succ $ Succ $ Succ $ Succ Stop
-
-i5 :: WrapPos (GE6 list)
-i5 = WrapPos $ Succ $ Succ $ Succ $ Succ $ Succ Stop
-
-i6 :: WrapPos (GE7 list)
-i6 = WrapPos $ Succ $ Succ $ Succ $ Succ $ Succ $ Succ Stop
+succ :: WrapPos list -> WrapPos (NonEmpty.T list)
+succ (WrapPos n) = WrapPos (Succ n)
 
-i7 :: WrapPos (GE8 list)
-i7 = WrapPos $ Succ $ Succ $ Succ $ Succ $ Succ $ Succ $ Succ Stop
+i0 :: WrapPos (GE1 list); i0 = WrapPos Stop
+i1 :: WrapPos (GE2 list); i1 = succ i0
+i2 :: WrapPos (GE3 list); i2 = succ i1
+i3 :: WrapPos (GE4 list); i3 = succ i2
+i4 :: WrapPos (GE5 list); i4 = succ i3
+i5 :: WrapPos (GE6 list); i5 = succ i4
+i6 :: WrapPos (GE7 list); i6 = succ i5
+i7 :: WrapPos (GE8 list); i7 = succ i6
