diff --git a/Biobase.cabal b/Biobase.cabal
--- a/Biobase.cabal
+++ b/Biobase.cabal
@@ -1,5 +1,5 @@
 name:           Biobase
-version:        0.1.0.0
+version:        0.1.0.1
 author:         Christian Hoener zu Siederdissen
 maintainer:     choener@tbi.univie.ac.at
 homepage:       http://www.tbi.univie.ac.at/~choener/Haskell/
@@ -14,25 +14,49 @@
 description:
                 Base library for bioinformatics providing the following features:
                 .
-                - RNA primary and secondary structure
-                - Infernal covariance models
-                - Turner and Vienna energy files
+                * RNA primary and secondary structure
                 .
-                - efficient format for RNA sequences, based on the vector package
-                - import from strings, bytestrings, fasta files (using the bio library)
-                - secondary structure manipulation functions, im- and export of Vienna-dotbracket notation
-                - import Turner energy files
-                - cf. http://rna.urmc.rochester.edu/NNDB/index.html
-                - im- and export of Vienna 2.0 energy files
+                * Infernal covariance models
                 .
-                - import covariance models
-                - basic manipulation of covariance models
-                - Stockholm file format manipulation
+                * Turner and Vienna energy files
                 .
-                - algebraic ring class
-                - instances for Gibbs free energy, partition function probabilities, and scores
-                - conversion between different entities
-                - ready for the vector library
+                .
+                .
+                RNA sequences and energy files:
+                .
+                * efficient format for RNA sequences, based on the vector package
+                .
+                * import from strings, bytestrings, fasta files (using the bio library)
+                .
+                * secondary structure manipulation functions, im- and export of Vienna-dotbracket notation
+                .
+                * import Turner energy files
+                .
+                * cf. http://rna.urmc.rochester.edu/NNDB/index.html
+                .
+                * im- and export of Vienna 2.0 energy files
+                .
+                .
+                .
+                Covariance models:
+                .
+                * import covariance models
+                .
+                * basic manipulation of covariance models
+                .
+                * Stockholm file format manipulation
+                .
+                .
+                .
+                Utility classes:
+                .
+                * algebraic ring class
+                .
+                * instances for Gibbs free energy, partition function probabilities, and scores
+                .
+                * conversion between different entities
+                .
+                * ready for the vector library
 
 
 
diff --git a/Biobase/RNA.hs b/Biobase/RNA.hs
--- a/Biobase/RNA.hs
+++ b/Biobase/RNA.hs
@@ -9,6 +9,9 @@
 -- This might change over time.
 --
 -- TODO do not export Nucleotide ctor?
+--
+-- TODO consider adding "nucAmpersand" as a chain seperator. This could make
+-- some things easier.
 
 module Biobase.RNA where
 
@@ -72,6 +75,10 @@
     | Just n <- x `lookup` charNucList = Nucleotide n
     | otherwise = nucE
 
+-- | Since this function is used rather often.
+
+char2nuc = charToNucleotide
+
 nucleotideToChar :: Nucleotide -> Char
 nucleotideToChar (Nucleotide n) = f n where
   f x
@@ -79,12 +86,29 @@
 
 
 
--- * Represent nucleotide sequences using an unboxed vector.
+-- * Represent nucleotide sequences using a PrimArray.
+--
+-- TODO switch back to Unboxed.Vector? Test speed of both approaches!
 
 type Primary = PrimArray Int Nucleotide
 
+-- |
+--
+-- TODO is this fast enough?
+
+instance Eq Primary where
+  xs == ys = bounds xs == bounds ys && toList xs == toList ys
+
 instance Show Primary where
   show p = "mkPrimary " ++ unPrimary p
+
+instance Read Primary where
+  readsPrec p xs
+    | "mkPrimary " == chk = [(mkPrimary ps,ys)]
+    | otherwise           = error $ show (chk,others,ps,ys)
+    where
+      (chk,others) = splitAt 10 xs
+      (ps,ys) = span (`elem` "ACGUE") others
 
 class MkPrimary a where
   mkPrimary :: a -> Primary
