diff --git a/composition.cabal b/composition.cabal
--- a/composition.cabal
+++ b/composition.cabal
@@ -1,5 +1,5 @@
 Name:                composition
-Version:             0.1
+Version:             0.2
 Synopsis:            Combinators for unorthodox function composition
 License:             BSD3
 License-file:        LICENSE
diff --git a/src/Data/Composition.hs b/src/Data/Composition.hs
--- a/src/Data/Composition.hs
+++ b/src/Data/Composition.hs
@@ -1,7 +1,37 @@
-module Data.Composition where
+module Data.Composition (
+  (.*),
+  (.**),
+  (.***),
+  (.****),
+  (.*****),
+  (.******),
+  (.*******),
+  (.********),
+  compose2,
+  compose3,
+  compose4,
+  compose5,
+  compose6,
+  compose7,
+  compose8,
+  compose9
+) where
 
+-- | This function can be more clearly defined as
+-- 
+-- > (.*) f g x y = f (g x y)
+--
+-- Example usage: @bind = join .* flip fmap@
+-- Notice how two arguments will be given to @flip fmap@ before the result
+-- is passed to @join@.
+-- 
+-- This is equivalent to @bind v f = join (fmap v f)@
+(.*) :: (c -> d) -> (a -> b -> c) -> a -> b -> d
 (.*) = (.) . (.)
+
+(.**) :: (d -> e) -> (a -> b -> c -> d) -> a -> b -> c -> e
 (.**) = (.) . (.*)
+
 (.***) = (.) . (.**)
 (.****) = (.) . (.***)
 (.*****) = (.) . (.****)
@@ -9,8 +39,13 @@
 (.*******) = (.) . (.******)
 (.********) = (.) . (.*******)
 
+
+compose2 :: (c -> d) -> (a -> b -> c) -> a -> b -> d
 compose2 = (.*)
+
+compose3 :: (d -> e) -> (a -> b -> c -> d) -> a -> b -> c -> e
 compose3 = (.**)
+
 compose4 = (.***)
 compose5 = (.****)
 compose6 = (.*****)
