diff --git a/composition-extra.cabal b/composition-extra.cabal
--- a/composition-extra.cabal
+++ b/composition-extra.cabal
@@ -1,5 +1,5 @@
 name:                composition-extra
-version:             0.0.0.2
+version:             1.0.0
 synopsis:            Combinators for unorthodox structure composition
 
 license:             BSD3
@@ -13,10 +13,10 @@
 
 library
   hs-source-dirs:      src
-  exposed-modules:     Data.Functor.Composition
-                       Data.Functor.Contravariant.Composition
-                       Data.Function.Contravariant.Composition
-                       Control.Monad.Composition
+  exposed-modules:     Data.Functor.Syntax
+                       Data.Functor.Contravariant.Syntax
+                       Data.Function.Contravariant.Syntax
+                       Control.Monad.Syntax
   build-depends:       base >= 4.6 && < 5
                      , contravariant
 
diff --git a/src/Control/Monad/Composition.hs b/src/Control/Monad/Composition.hs
deleted file mode 100644
--- a/src/Control/Monad/Composition.hs
+++ /dev/null
@@ -1,62 +0,0 @@
-module Control.Monad.Composition where
-
-(>>==) :: Monad m =>
-          m b
-       -> (a -> b -> m c)
-       -> a -> m c
-(>>==) mb f a = f a =<< mb
-
-(>>===) :: Monad m =>
-           m c
-        -> (a -> b -> c -> m d)
-        -> a -> b -> m d
-(>>===) mc f a b = f a b =<< mc
-
-(>>====) :: Monad m =>
-            m d
-         -> (a -> b -> c -> d -> m e)
-         -> a -> b -> c -> m e
-(>>====) md f a b c = f a b c =<< md
-
-(>>=====) :: Monad m =>
-             m e
-          -> (a -> b -> c -> d -> e -> m f)
-          -> a -> b -> c -> d -> m f
-(>>=====) me f a b c d = f a b c d =<< me
-
-(>>======) :: Monad m =>
-              m f
-           -> (a -> b -> c -> d -> e -> f -> m g)
-           -> a -> b -> c -> d -> e -> m g
-(>>======) mf f a b c d e = f a b c d e =<< mf
-
-
-(==<<) :: Monad m =>
-          (a -> b -> m c)
-       -> m b
-       -> a -> m c
-(==<<) = flip (>>==)
-
-(===<<) :: Monad m =>
-           (a -> b -> c -> m d)
-        -> m c
-        -> a -> b -> m d
-(===<<) = flip (>>===)
-
-(====<<) :: Monad m =>
-            (a -> b -> c -> d -> m e)
-         -> m d
-         -> a -> b -> c -> m e
-(====<<) = flip (>>====)
-
-(=====<<) :: Monad m =>
-             (a -> b -> c -> d -> e -> m f)
-          -> m e
-          -> a -> b -> c -> d -> m f
-(=====<<) = flip (>>=====)
-
-(======<<) :: Monad m =>
-              (a -> b -> c -> d -> e -> f -> m g)
-           -> m f
-           -> a -> b -> c -> d -> e -> m g
-(======<<) = flip (>>======)
diff --git a/src/Control/Monad/Syntax.hs b/src/Control/Monad/Syntax.hs
new file mode 100644
--- /dev/null
+++ b/src/Control/Monad/Syntax.hs
@@ -0,0 +1,56 @@
+module Control.Monad.Syntax
+  ( module X
+  , (>>==)
+  , (>>===)
+  , (>>====)
+  , (>>=====)
+  , (>>======)
+  ) where
+
+import Control.Monad.Syntax.Two as X
+import Control.Monad.Syntax.Three as X
+import Control.Monad.Syntax.Four as X
+import Control.Monad.Syntax.Five as X
+import Control.Monad.Syntax.Six as X
+
+
+
+(>>==) :: Monad m =>
+          m b
+       -> (a -> b -> m c)
+       -> a -> m c
+(>>==) mb f a = f a =<< mb
+
+infixr 2 >>==
+
+(>>===) :: Monad m =>
+           m c
+        -> (a -> b -> c -> m d)
+        -> a -> b -> m d
+(>>===) mc f a b = f a b =<< mc
+
+infixr 2 >>===
+
+(>>====) :: Monad m =>
+            m d
+         -> (a -> b -> c -> d -> m e)
+         -> a -> b -> c -> m e
+(>>====) md f a b c = f a b c =<< md
+
+infixr 2 >>====
+
+(>>=====) :: Monad m =>
+             m e
+          -> (a -> b -> c -> d -> e -> m f)
+          -> a -> b -> c -> d -> m f
+(>>=====) me f a b c d = f a b c d =<< me
+
+infixr 2 >>=====
+
+(>>======) :: Monad m =>
+              m f
+           -> (a -> b -> c -> d -> e -> f -> m g)
+           -> a -> b -> c -> d -> e -> m g
+(>>======) mf f a b c d e = f a b c d e =<< mf
+
+infixr 2 >>======
diff --git a/src/Data/Function/Contravariant/Composition.hs b/src/Data/Function/Contravariant/Composition.hs
deleted file mode 100644
--- a/src/Data/Function/Contravariant/Composition.hs
+++ /dev/null
@@ -1,46 +0,0 @@
-module Data.Function.Contravariant.Composition where
-
-(-.) :: (a -> b)
-     -> (b -> c)
-     -> a -> c
-(-.) = flip (.)
-
-(-.:) :: (b -> c)
-      -> (a -> c -> d)
-      -> a -> b -> d
-(-.:) p q a b = q a $ p b
-
-(-.:.) :: (c -> d)
-       -> (a -> b -> d -> e)
-       -> a -> b -> c -> e
-(-.:.) p q a b c = q a b $ p c
-
-(-.::) :: (d -> e)
-       -> (a -> b -> c -> e -> f)
-       -> a -> b -> c -> d -> f
-(-.::) p q a b c d = q a b c $ p d
-
-(-.::.) :: (e -> f)
-        -> (a -> b -> c -> d -> f -> g)
-        -> a -> b -> c -> d -> e -> g
-(-.::.) p q a b c d e = q a b c d $ p e
-
-(-.:::) :: (f -> g)
-        -> (a -> b -> c -> d -> e -> g -> h)
-        -> a -> b -> c -> d -> e -> f -> h
-(-.:::) p q a b c d e f = q a b c d e $ p f
-
-(-.:::.) :: (g -> h)
-         -> (a -> b -> c -> d -> e -> f -> h -> i)
-         -> a -> b -> c -> d -> e -> f -> g -> i
-(-.:::.) p q a b c d e f g = q a b c d e f $ p g
-
-(-.::::) :: (h -> i)
-         -> (a -> b -> c -> d -> e -> f -> g -> i -> j)
-         -> a -> b -> c -> d -> e -> f -> g -> h -> j
-(-.::::) p q a b c d e f g h = q a b c d e f g $ p h
-
-(-.::::.) :: (i -> j)
-          -> (a -> b -> c -> d -> e -> f -> g -> h -> j -> k)
-          -> a -> b -> c -> d -> e -> f -> g -> h -> i -> k
-(-.::::.) p q a b c d e f g h i = q a b c d e f g h $ p i
diff --git a/src/Data/Function/Contravariant/Syntax.hs b/src/Data/Function/Contravariant/Syntax.hs
new file mode 100644
--- /dev/null
+++ b/src/Data/Function/Contravariant/Syntax.hs
@@ -0,0 +1,62 @@
+module Data.Function.Contravariant.Syntax where
+
+(-.) :: (a -> b)
+     -> (b -> c)
+     -> a -> c
+(-.) = flip (.)
+
+(-.:) :: (b -> c)
+      -> (a -> c -> d)
+      -> a -> b -> d
+(-.:) p q a b = q a $ p b
+
+(-.*) = (-.:)
+
+(-.:.) :: (c -> d)
+       -> (a -> b -> d -> e)
+       -> a -> b -> c -> e
+(-.:.) p q a b c = q a b $ p c
+
+(-.**) = (-.:.)
+
+(-.::) :: (d -> e)
+       -> (a -> b -> c -> e -> f)
+       -> a -> b -> c -> d -> f
+(-.::) p q a b c d = q a b c $ p d
+
+(-.***) = (-.::)
+
+(-.::.) :: (e -> f)
+        -> (a -> b -> c -> d -> f -> g)
+        -> a -> b -> c -> d -> e -> g
+(-.::.) p q a b c d e = q a b c d $ p e
+
+(-.****) = (-.::.)
+
+(-.:::) :: (f -> g)
+        -> (a -> b -> c -> d -> e -> g -> h)
+        -> a -> b -> c -> d -> e -> f -> h
+(-.:::) p q a b c d e f = q a b c d e $ p f
+
+(-.*****) = (-.:::)
+
+(-.:::.) :: (g -> h)
+         -> (a -> b -> c -> d -> e -> f -> h -> i)
+         -> a -> b -> c -> d -> e -> f -> g -> i
+(-.:::.) p q a b c d e f g = q a b c d e f $ p g
+
+(-.******) = (-.:::.)
+
+(-.::::) :: (h -> i)
+         -> (a -> b -> c -> d -> e -> f -> g -> i -> j)
+         -> a -> b -> c -> d -> e -> f -> g -> h -> j
+(-.::::) p q a b c d e f g h = q a b c d e f g $ p h
+
+(-.*******) = (-.::::)
+
+(-.::::.) :: (i -> j)
+          -> (a -> b -> c -> d -> e -> f -> g -> h -> j -> k)
+          -> a -> b -> c -> d -> e -> f -> g -> h -> i -> k
+(-.::::.) p q a b c d e f g h i = q a b c d e f g h $ p i
+
+(-.********) = (-.::::.)
diff --git a/src/Data/Functor/Composition.hs b/src/Data/Functor/Composition.hs
deleted file mode 100644
--- a/src/Data/Functor/Composition.hs
+++ /dev/null
@@ -1,26 +0,0 @@
-module Data.Functor.Composition where
-
-
-(<$$>) :: (Functor f0, Functor f1) =>
-          (a -> b)
-       -> f1 (f0 a)
-       -> f1 (f0 b)
-(<$$>) = fmap . fmap
-
-(<$$$>) :: (Functor f0, Functor f1, Functor f2) =>
-          (a -> b)
-       -> f2 (f1 (f0 a))
-       -> f2 (f1 (f0 b))
-(<$$$>) = fmap . fmap . fmap
-
-(<$$$$>) :: (Functor f0, Functor f1, Functor f2, Functor f3) =>
-          (a -> b)
-       -> f3 (f2 (f1 (f0 a)))
-       -> f3 (f2 (f1 (f0 b)))
-(<$$$$>) = fmap . fmap . fmap . fmap
-
-(<$$$$$>) :: (Functor f0, Functor f1, Functor f2, Functor f3, Functor f4) =>
-          (a -> b)
-       -> f4 (f3 (f2 (f1 (f0 a))))
-       -> f4 (f3 (f2 (f1 (f0 b))))
-(<$$$$$>) = fmap . fmap . fmap . fmap . fmap
diff --git a/src/Data/Functor/Contravariant/Composition.hs b/src/Data/Functor/Contravariant/Composition.hs
deleted file mode 100644
--- a/src/Data/Functor/Contravariant/Composition.hs
+++ /dev/null
@@ -1,33 +0,0 @@
-module Data.Functor.Contravariant.Composition where
-
-import Data.Functor.Contravariant
-
-(<-$>) :: Contravariant f =>
-          (a -> b)
-       -> f b
-       -> f a
-(<-$>) = contramap
-
-(<-$$>) :: (Contravariant f0, Contravariant f1) =>
-          (a -> b)
-       -> f1 (f0 a)
-       -> f1 (f0 b)
-(<-$$>) = contramap . contramap
-
-(<-$$$>) :: (Contravariant f0, Contravariant f1, Contravariant f2) =>
-          (a -> b)
-       -> f2 (f1 (f0 b))
-       -> f2 (f1 (f0 a))
-(<-$$$>) = contramap . contramap . contramap
-
-(<-$$$$>) :: (Contravariant f0, Contravariant f1, Contravariant f2, Contravariant f3) =>
-          (a -> b)
-       -> f3 (f2 (f1 (f0 a)))
-       -> f3 (f2 (f1 (f0 b)))
-(<-$$$$>) = contramap . contramap . contramap . contramap
-
-(<-$$$$$>) :: (Contravariant f0, Contravariant f1, Contravariant f2, Contravariant f3, Contravariant f4) =>
-          (a -> b)
-       -> f4 (f3 (f2 (f1 (f0 b))))
-       -> f4 (f3 (f2 (f1 (f0 a))))
-(<-$$$$$>) = contramap . contramap . contramap . contramap . contramap
diff --git a/src/Data/Functor/Contravariant/Syntax.hs b/src/Data/Functor/Contravariant/Syntax.hs
new file mode 100644
--- /dev/null
+++ b/src/Data/Functor/Contravariant/Syntax.hs
@@ -0,0 +1,33 @@
+module Data.Functor.Contravariant.Syntax where
+
+import Data.Functor.Contravariant
+
+(<-$>) :: Contravariant f =>
+          (a -> b)
+       -> f b
+       -> f a
+(<-$>) = contramap
+
+(<-$$>) :: (Contravariant f0, Contravariant f1) =>
+          (a -> b)
+       -> f1 (f0 a)
+       -> f1 (f0 b)
+(<-$$>) = contramap . contramap
+
+(<-$$$>) :: (Contravariant f0, Contravariant f1, Contravariant f2) =>
+          (a -> b)
+       -> f2 (f1 (f0 b))
+       -> f2 (f1 (f0 a))
+(<-$$$>) = contramap . contramap . contramap
+
+(<-$$$$>) :: (Contravariant f0, Contravariant f1, Contravariant f2, Contravariant f3) =>
+          (a -> b)
+       -> f3 (f2 (f1 (f0 a)))
+       -> f3 (f2 (f1 (f0 b)))
+(<-$$$$>) = contramap . contramap . contramap . contramap
+
+(<-$$$$$>) :: (Contravariant f0, Contravariant f1, Contravariant f2, Contravariant f3, Contravariant f4) =>
+          (a -> b)
+       -> f4 (f3 (f2 (f1 (f0 b))))
+       -> f4 (f3 (f2 (f1 (f0 a))))
+(<-$$$$$>) = contramap . contramap . contramap . contramap . contramap
diff --git a/src/Data/Functor/Syntax.hs b/src/Data/Functor/Syntax.hs
new file mode 100644
--- /dev/null
+++ b/src/Data/Functor/Syntax.hs
@@ -0,0 +1,26 @@
+module Data.Functor.Syntax where
+
+
+(<$$>) :: (Functor f0, Functor f1) =>
+          (a -> b)
+       -> f1 (f0 a)
+       -> f1 (f0 b)
+(<$$>) = fmap . fmap
+
+(<$$$>) :: (Functor f0, Functor f1, Functor f2) =>
+          (a -> b)
+       -> f2 (f1 (f0 a))
+       -> f2 (f1 (f0 b))
+(<$$$>) = fmap . fmap . fmap
+
+(<$$$$>) :: (Functor f0, Functor f1, Functor f2, Functor f3) =>
+          (a -> b)
+       -> f3 (f2 (f1 (f0 a)))
+       -> f3 (f2 (f1 (f0 b)))
+(<$$$$>) = fmap . fmap . fmap . fmap
+
+(<$$$$$>) :: (Functor f0, Functor f1, Functor f2, Functor f3, Functor f4) =>
+          (a -> b)
+       -> f4 (f3 (f2 (f1 (f0 a))))
+       -> f4 (f3 (f2 (f1 (f0 b))))
+(<$$$$$>) = fmap . fmap . fmap . fmap . fmap
