diff --git a/Data/Thrist.hs b/Data/Thrist.hs
--- a/Data/Thrist.hs
+++ b/Data/Thrist.hs
@@ -22,6 +22,7 @@
 foldThrist f v (Cons h t) = h `f` (foldThrist f v t)
 
 {- Simple demo:
+-- MOVE THIS TO TESTS
 t1 :: Thrist (->) Char Char
 t1 = ord `Cons` ((\i -> i+32) `Cons` (chr `Cons` Nil))
 
@@ -49,20 +50,8 @@
 instance Arrow (Thrist (->)) where
   arr f = Cons f Nil
   first Nil = Nil
-  first (Cons f _) = Cons (f *** Control.Category.id) undefined
-
-{-
-class Category cat where
-  id :: cat a a
-  (.) :: cat b c -> cat a b -> cat a c
-  (<<<) :: Category cat => cat b c -> cat a b -> cat a c
-  (>>>) :: Category cat => cat a b -> cat b c -> cat a c
--}
+  first (t@(Cons _ _)) = Cons ((foldThrist (flip (Prelude..)) Prelude.id t) *** Prelude.id) Nil
 
 instance Category (Thrist (~>)) where
   id = Nil
   b . a = appendThrist a b
-  --  below methods are defaulted:
-  --
-  ---  b <<< a = appendThrist a b
-  ---  a >>> b = appendThrist a b
diff --git a/thrist.cabal b/thrist.cabal
--- a/thrist.cabal
+++ b/thrist.cabal
@@ -1,5 +1,5 @@
 Name:                thrist
-Version:             0.1.1
+Version:             0.1.2
 Synopsis:            Type-threaded list
 
 Description:
