diff --git a/data-cell.cabal b/data-cell.cabal
--- a/data-cell.cabal
+++ b/data-cell.cabal
@@ -1,5 +1,5 @@
 name:           data-cell
-version:        1.0.0.0
+version:        1.0.0.1
 synopsis:       Generic cellular data representation library
 homepage:       https://github.com/zadarnowski/data-cell
 category:       Data
@@ -14,8 +14,21 @@
 
     This library defines a trivial type used for streaming
     of tabular data using coinductive control structures
-    such as pipes, conduit or iteratees.
+    such as pipes, conduit or iteratees with a guaranteed
+    constant memory usage.
 
+    In this structure, each /cell/ of data is annotated
+    with information about its relation to the following
+    cell in the stream, namely /end of cell/, /end of row/
+    and /end of table/ conditions. In addition, in order
+    to achieve truly-constant memory usage irrespective of
+    individual cell size, we allow individual cells to be
+    subdivided further into /parts/, as indicated by the
+    /end of part/ condition. Logically, this subdivision
+    into parts is supposed to be purely operational and
+    have no semantic significance, similarly to subdivision
+    of lazy bytestrings into chunks.
+
 cabal-version:  >= 1.18
 build-type:     Simple
 license:        BSD3
@@ -28,7 +41,7 @@
 source-repository this
   type:         git
   location:     https://github.com/zadarnowski/data-cell.git
-  tag:          1.0.0.0
+  tag:          1.0.0.1
 
 library
   hs-source-dirs:   src
diff --git a/src/Data/Cell.lhs b/src/Data/Cell.lhs
--- a/src/Data/Cell.lhs
+++ b/src/Data/Cell.lhs
@@ -1,25 +1,40 @@
-> -- | Module:      Data.Cell
-> --   Description: Generic cellular data representation library
-> --   Copyright:   © 2015 Patryk Zadarnowski <pat@jantar.org>
-> --   License:     BSD3
-> --   Maintainer:  pat@jantar.org
-> --   Stability:   experimental
-> --   Portability: portable
+> -- | Module:    Data.Cell
+> -- Description: Generic cellular data representation library
+> -- Copyright:   © 2015 Patryk Zadarnowski <pat@jantar.org>
+> -- License:     BSD3
+> -- Maintainer:  pat@jantar.org
+> -- Stability:   experimental
+> -- Portability: portable
+> --
+> -- In this structure, each /cell/ of data is annotated
+> -- with information about its relation to the following
+> -- cell in the stream, namely /end of cell/, /end of row/
+> -- and /end of table/ conditions. In addition, in order
+> -- to achieve truly-constant memory usage irrespective of
+> -- individual cell size, we allow individual cells to be
+> -- subdivided further into /parts/, as indicated by the
+> -- /end of part/ condition. Logically, this subdivision
+> -- into parts is supposed to be purely operational and
+> -- have no semantic significance, similarly to subdivision
+> -- of lazy bytestrings into chunks.
 
 > module Data.Cell (
 >   Cell (..), CellDelimiter (..)
 > ) where
 
-> -- | Individual cell type
+> -- | Type used to represent individual data cells.
 
 > data Cell a = Cell a CellDelimiter
 >   deriving (Eq, Ord, Show)
 
+> instance Functor Cell where
+>   fmap f (Cell x d) = Cell (f x) d
+
 > -- | Cell delimiter
 
 > data CellDelimiter =
->     EOP    -- ^ end of partial cell content
->   | EOC    -- ^ end of cell
->   | EOR    -- ^ end of row
->   | EOT    -- ^ end of table
+>     EOP    -- ^ end of a partial cell content
+>   | EOC    -- ^ end of a complete data cell
+>   | EOR    -- ^ end of a complete row of cells
+>   | EOT    -- ^ end of an entire table
 >   deriving (Eq, Ord, Show, Enum)
