diff --git a/src/UniqueLogic/ST/TF/Rule.hs b/src/UniqueLogic/ST/TF/Rule.hs
--- a/src/UniqueLogic/ST/TF/Rule.hs
+++ b/src/UniqueLogic/ST/TF/Rule.hs
@@ -40,6 +40,9 @@
    Sys.Variable w s a -> Sys.Variable w s a -> Sys.T w s ()
 equ = generic2 id id
 
+{- |
+@max x y z@ means @max x y = z@.
+-}
 max ::
    (Ord a, UMT.C w) =>
    Sys.Variable w s a -> Sys.Variable w s a -> Sys.Variable w s a -> Sys.T w s ()
@@ -63,18 +66,30 @@
    Sys.assignment2 fst xy x >>
    Sys.assignment2 snd xy y
 
+{- |
+@add x y z@ means @x+y=z@.
+-}
 add :: (Num a, UMT.C w) =>
    Sys.Variable w s a -> Sys.Variable w s a -> Sys.Variable w s a -> Sys.T w s ()
 add = generic3 subtract (-) (+)
 
+{- |
+@mul x y z@ means @x*y=z@.
+-}
 mul :: (Fractional a, UMT.C w) =>
    Sys.Variable w s a -> Sys.Variable w s a -> Sys.Variable w s a -> Sys.T w s ()
 mul = generic3 (flip (/)) (/) (*)
 
+{- |
+@square x y@ means @x^2=y@.
+-}
 square :: (Floating a, UMT.C w) =>
    Sys.Variable w s a -> Sys.Variable w s a -> Sys.T w s ()
 square = generic2 sqrt (^(2::Int))
 
+{- |
+@pow x y z@ means @x**y=z@.
+-}
 pow :: (Floating a, UMT.C w) =>
    Sys.Variable w s a -> Sys.Variable w s a -> Sys.Variable w s a -> Sys.T w s ()
 pow = generic3 (\x y -> y ** recip x) (flip logBase) (**)
diff --git a/unique-logic-tf.cabal b/unique-logic-tf.cabal
--- a/unique-logic-tf.cabal
+++ b/unique-logic-tf.cabal
@@ -1,5 +1,5 @@
 Name:             unique-logic-tf
-Version:          0.4.1
+Version:          0.4.1.1
 License:          BSD3
 License-File:     LICENSE
 Author:           Henning Thielemann
@@ -64,7 +64,7 @@
 Build-Type:        Simple
 
 Source-Repository this
-  Tag:         0.4.1
+  Tag:         0.4.1.1
   Type:        darcs
   Location:    http://code.haskell.org/~thielema/unique-logic-tf/
 
