diff --git a/changes.md b/changes.md
--- a/changes.md
+++ b/changes.md
@@ -1,3 +1,6 @@
+# 0.0.0.1
+    - Improved documentation
+
 # 0.0.0.0
 
 First published version
diff --git a/filepath-crypto.cabal b/filepath-crypto.cabal
--- a/filepath-crypto.cabal
+++ b/filepath-crypto.cabal
@@ -1,45 +1,45 @@
-name: filepath-crypto
-version: 0.0.0.0
-cabal-version: >=1.10
-build-type: Simple
-license: BSD3
-license-file: LICENSE
-maintainer: aethoago@141.li
-synopsis: Reversable and secure encoding of object ids as filepaths
-category: cryptography
-author: Gregor Kleen
-extra-source-files:
-    changes.md
-
+name:                filepath-crypto
+version:             0.0.0.1
+synopsis:            Reversable and secure encoding of object ids as filepaths
+license:             BSD3
+license-file:        LICENSE
+author:              Gregor Kleen
+maintainer:          aethoago@141.li
+category:            cryptography
+build-type:          Simple
+cabal-version:       >=1.10
+extra-source-files:  changes.md
 source-repository head
-    type: git
-    location: https://git.rheperire.org/cryptoids
-    subdir: filepath-crypto
+  type:                git
+  location:            https://git.rheperire.org/cryptoids
+  subdir:              filepath-crypto
 
 library
-    exposed-modules:
-        System.FilePath.Cryptographic
-        Data.Binary.SerializationLength
-        Data.Binary.SerializationLength.TH
-    build-depends:
-        base >=4.9 && <4.11,
-        cryptoids-types ==0.0.0,
-        cryptoids ==0.4.0.*,
-        filepath >=1.4.1.1 && <1.5,
-        sandi >=0.4.1 && <0.5,
-        case-insensitive >=1.2.0.10 && <1.3,
-        binary >=0.8.3.0 && <0.9,
-        bytestring >=0.10.8.1 && <0.11,
-        exceptions >=0.8.3 && <0.9,
-        encoding >=0.8.2 && <0.9,
-        template-haskell >=2.11.0.0 && <2.13
-    default-language: Haskell2010
-    default-extensions: KindSignatures ViewPatterns FlexibleContexts
-                        GeneralizedNewtypeDeriving PatternGuards RecordWildCards DataKinds
-                        DeriveDataTypeable DeriveGeneric
-    other-extensions: ScopedTypeVariables
-    hs-source-dirs: src
-    other-modules:
-        Data.Binary.SerializationLength.Class
-    ghc-options: -Wall -fno-warn-name-shadowing
-
+  exposed-modules:     System.FilePath.Cryptographic
+                     , Data.Binary.SerializationLength
+                     , Data.Binary.SerializationLength.TH
+  other-modules:       Data.Binary.SerializationLength.Class
+  default-extensions:  KindSignatures
+                     , ViewPatterns
+                     , FlexibleContexts
+                     , GeneralizedNewtypeDeriving
+                     , PatternGuards
+                     , RecordWildCards
+                     , DataKinds
+                     , DeriveDataTypeable
+                     , DeriveGeneric
+  other-extensions:    ScopedTypeVariables
+  build-depends:       base              >=4.9      && <4.11
+                     , cryptoids-types   ==0.0.0
+                     , cryptoids         ==0.4.0.*
+                     , filepath          >=1.4.1.1  && <1.5
+                     , sandi             >=0.4.1    && <0.5
+                     , case-insensitive  >=1.2.0.10 && <1.3
+                     , binary            >=0.8.3.0  && <0.9
+                     , bytestring        >=0.10.8.1 && <0.11
+                     , exceptions        >=0.8.3    && <0.9
+                     , encoding          >=0.8.2    && <0.9
+                     , template-haskell  >=2.11.0.0 && <2.13
+  hs-source-dirs:      src
+  default-language:    Haskell2010
+  ghc-options:         -Wall -fno-warn-name-shadowing
diff --git a/src/Data/Binary/SerializationLength/Class.hs b/src/Data/Binary/SerializationLength/Class.hs
--- a/src/Data/Binary/SerializationLength/Class.hs
+++ b/src/Data/Binary/SerializationLength/Class.hs
@@ -6,5 +6,8 @@
 
 import GHC.TypeLits
 
+-- | The class of types for which the result of serialization with @Data.Binary@
+--   is known statically to be of a certain length
 class KnownNat (SerializationLength a) => HasFixedSerializationLength a where
+  -- | The 'SerializationLength' is given in bytes at type level
   type SerializationLength a :: Nat
diff --git a/src/Data/Binary/SerializationLength/TH.hs b/src/Data/Binary/SerializationLength/TH.hs
--- a/src/Data/Binary/SerializationLength/TH.hs
+++ b/src/Data/Binary/SerializationLength/TH.hs
@@ -10,6 +10,12 @@
 
 
 hasFixedSerializationLength :: Name -> Integer -> DecsQ
+-- | Shorthand for defining instances of 'HasFixedSerializationLength', morally:
+--
+-- > hasFixedSerializationLength typeName byteN = [d|
+-- >     instance HasFixedSerializiationLength $(typeName) where
+-- >       type SerializationLength $(typeName) = $(byteN)
+-- >   |]
 hasFixedSerializationLength (return . ConT -> t) (return . LitT . NumTyLit -> i) =
   [d|
     instance HasFixedSerializationLength $(t) where
diff --git a/src/System/FilePath/Cryptographic.hs b/src/System/FilePath/Cryptographic.hs
--- a/src/System/FilePath/Cryptographic.hs
+++ b/src/System/FilePath/Cryptographic.hs
@@ -60,11 +60,11 @@
 import GHC.TypeLits
 
 
--- | @serializedLength@ is given in bytes.
 type CryptoFileName (namespace :: Symbol) = CryptoID namespace (CI FilePath)
 
 
 paddedLength :: Integral a => a -> a
+-- | Round up to nearest multiple of 'cipherBlockSize'
 paddedLength l = bs * ceiling (l % bs)
   where bs = fromIntegral cipherBlockSize
 
