diff --git a/biocore.cabal b/biocore.cabal
--- a/biocore.cabal
+++ b/biocore.cabal
@@ -1,5 +1,5 @@
 Name:      biocore
-Version:   0.1
+Version:   0.2
 License:   LGPL
 
 Cabal-Version:       >= 1.6
@@ -16,6 +16,10 @@
 Tested-With:         GHC==6.12.3
 Build-Type:          Simple
 -- Data-Files:
+
+Source-repository head
+  Type:     darcs
+  Location: http://malde.org/~ketil/biohaskell/biocore/
 
 Library
   Build-Depends:     base >= 3 && < 5, bytestring
diff --git a/src/Bio/Core/Sequence.hs b/src/Bio/Core/Sequence.hs
--- a/src/Bio/Core/Sequence.hs
+++ b/src/Bio/Core/Sequence.hs
@@ -9,7 +9,7 @@
     'Data.ByteString.Lazy' and 'Data.ByteString.Lazy.Char8'.
 -}
 
-{-# Language GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving, DeriveDataTypeable #-}
 
 module Bio.Core.Sequence (
   -- * Data definitions
@@ -26,23 +26,24 @@
 import qualified Data.ByteString.Lazy.Char8 as LC
 import qualified Data.ByteString.Lazy as L
 import Data.Int
+import Data.Typeable (Typeable)
 import Data.Word
 import Data.String
 
 -- | Sequence data are lazy bytestrings of ASCII characters.
-newtype SeqData  = SeqData { unSD :: LC.ByteString } deriving (Eq,Ord,IsString)
+newtype SeqData  = SeqData { unSD :: LC.ByteString } deriving (Eq,Ord,IsString,Show,Typeable)
 
 -- | Sequence data are lazy bytestrings of ASCII characters.
-newtype SeqLabel = SeqLabel { unSL :: LC.ByteString } deriving (Eq,Ord,IsString)
+newtype SeqLabel = SeqLabel { unSL :: LC.ByteString } deriving (Eq,Ord,IsString,Show,Typeable)
 
 -- | A quality value is in the range 0..255.
 newtype Qual     = Qual { unQual :: Word8 } deriving (Show,Eq,Ord,Num)
 
 -- | Quality data are lazy bytestrings of 'Qual's.
-newtype QualData = QualData { unQD :: L.ByteString } deriving (Eq,Ord)
+newtype QualData = QualData { unQD :: L.ByteString } deriving (Eq,Ord,Show,Typeable)
 
 -- | An 'Offset' is a zero-based index into a sequence
-newtype Offset   = Offset { unOff :: Int64 } deriving (Show,Eq,Ord,Num)
+newtype Offset   = Offset { unOff :: Int64 } deriving (Show,Eq,Ord,Num,Enum,Real,Integral,Typeable)
 
 -- | The 'BioSeq' class models sequence data, and any data object that
 --   represents a biological sequence should implement it.
diff --git a/src/Bio/Core/Strand.hs b/src/Bio/Core/Strand.hs
--- a/src/Bio/Core/Strand.hs
+++ b/src/Bio/Core/Strand.hs
@@ -1,6 +1,10 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+
 {-| Define common data types for features of sequences -}
 
 module Bio.Core.Strand (Strand(..)) where
 
+import Data.Typeable (Typeable)
+
 -- | A 'Strand' is either plus (forward) or minus (reverse or reverse-complement)
-data Strand = Plus | Minus deriving (Eq,Ord,Read,Show)
+data Strand = Plus | Minus deriving (Eq,Ord,Read,Show,Typeable)
