diff --git a/Control/Monad/Royal.hs b/Control/Monad/Royal.hs
--- a/Control/Monad/Royal.hs
+++ b/Control/Monad/Royal.hs
@@ -1,50 +1,72 @@
+-----------------------------------------------------------------------------
+-- |
+-- Module      :  Control.Monad.Royal
+-- Copyright   :  (c) Atze van der Ploeg 2015
+-- License     :  BSD-style
+-- Maintainer  :  atzeus@gmail.org
+-- Stability   :  royal
+-- Portability :  royal
+--
+-- Introducing his majesty the Royal Monad
+--
+-- Royal Monads (or relative polymonads) generalize monads, polymonads _and_ relative monads.
+--
+-- Therefore Royal Monads (capitalize to emphasise royalness) are the king of monads! 
+-- 
+-- The ultimate abstraction! 
+-- 
+-- Ditch your boring old relative, poly or ordinary monad, and start programming with the king of monads! 
+-- 
+-- Bow before the ultimate generality of the Royal Monad, infidels!
+
 {-# LANGUAGE UndecidableInstances,FlexibleInstances,MultiParamTypeClasses #-}
 module Control.Monad.Royal where
-{-
 
-Royal Monads (or relative polymonads) generalize monads, polymonads _and_ relative monads.
 
-Therefore Royal Monads (captalize to emphasise royalness) are the king of monads! 
-
-The ultimate abstraction! 
-
-Ditch your boring old (relative) (poly) monad, and start programming
-with the king of monads! 
-
-Bow before the ultimate generality of the Royal Monad, infidels!
--}
-
 class RoyalReturn m r where
   royalReturn :: r a -> m a
 
+{- |
+ laws:
+@ 
+  royalBind m royalReturn = m
+  royalBind (royalReturn x) f = f x 
+  royalBind m (\x -> royalBind (f x) g) = royalBind (royalBind m f) g
+@
+-}
 class (RoyalReturn m r, RoyalReturn n r, RoyalReturn p r) => 
      RoyalMonad m n p r where
   royalBind   :: m a -> (r a -> n a) -> p a
-  -- laws:
-  -- royalBind m royalReturn = m
-  -- royalBind (royalReturn x) f = f x 
-  -- royalBind m (\x -> royalBind (f x) g) = royalBind (royalBind m f) g
 
 
 
 
+{- | Relative monads
+ laws:
+@ 
+relativeBind m royalReturn = m
+relativeBind (royalReturn x) f = f x 
+relativeBind m (\x -> relativeBind (f x) g) = relativeBind (relativeBind m f) g
+@
+-}
 class RoyalReturn m r => RelMonad m r where
   relativeBind :: m a -> (r a -> m b) -> m b
-  -- laws:
-  -- relativeBind m royalReturn = m
-  -- relativeBind (royalReturn x) f = f x 
-  -- relativeBind m (\x -> relativeBind (f x) g) = relativeBind (relativeBind m f) g
 
 class NonRoyalReturn m where
   rreturn :: a -> m a
 
+
+{- | Relative monads
+ laws:
+@ 
+polyBind m rreturn = m
+polyBind (rreturn x) f = f x 
+polyBind m (\x -> polyBind (f x) g) = polyBind (polyBind m f) g
+@
+-}
 class (NonRoyalReturn m, NonRoyalReturn n, NonRoyalReturn p) =>
     PolyMonad m n p where
   polyBind :: m a -> (a -> n b) -> p b
-  -- laws:
-  -- polyBind m rreturn = m
-  -- polyBind (rreturn x) f = f x 
-  -- polyBind m (\x -> polyBind (f x) g) = polyBind (polyBind m f) g
 
 newtype Id a = Id { fromId :: a} 
 
diff --git a/RoyalMonad.cabal b/RoyalMonad.cabal
--- a/RoyalMonad.cabal
+++ b/RoyalMonad.cabal
@@ -1,5 +1,5 @@
 Name:                RoyalMonad
-Version:             1000.0
+Version:             1000.1
 Synopsis:	     All hail the Royal Monad!
 Description:         All hail the Royal Monad!
 License:             BSD3
