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:             1.0.0
+version:             1.0.0.1
 synopsis:            Combinators for unorthodox structure composition
 
 license:             BSD3
@@ -17,6 +17,11 @@
                        Data.Functor.Contravariant.Syntax
                        Data.Function.Contravariant.Syntax
                        Control.Monad.Syntax
+                       Control.Monad.Syntax.Two
+                       Control.Monad.Syntax.Three
+                       Control.Monad.Syntax.Four
+                       Control.Monad.Syntax.Five
+                       Control.Monad.Syntax.Six
   build-depends:       base >= 4.6 && < 5
                      , contravariant
 
diff --git a/src/Control/Monad/Syntax/Five.hs b/src/Control/Monad/Syntax/Five.hs
new file mode 100644
--- /dev/null
+++ b/src/Control/Monad/Syntax/Five.hs
@@ -0,0 +1,42 @@
+module Control.Monad.Syntax.Five where
+
+
+(=====<<) :: Monad m =>
+             (a -> b -> c -> d -> e -> m f)
+          -> m a
+          -> b -> c -> d -> e -> m f
+(=====<<) mf x b c d e = x >>= (\a -> mf a b c d e)
+
+infixr 1 =====<<
+
+(=.===<<) :: Monad m =>
+             (a -> b -> c -> d -> e -> m f)
+          -> m b
+          -> a -> c -> d -> e -> m f
+(=.===<<) mf x a c d e = x >>= (\b -> mf a b c d e)
+
+infixr 1 =.===<<
+
+(==.==<<) :: Monad m =>
+             (a -> b -> c -> d -> e -> m f)
+          -> m c
+          -> a -> b -> d -> e -> m f
+(==.==<<) mf x a b d e = x >>= (\c -> mf a b c d e)
+
+infixr 1 ==.==<<
+
+(===.=<<) :: Monad m =>
+             (a -> b -> c -> d -> e -> m f)
+          -> m d
+          -> a -> b -> c -> e -> m f
+(===.=<<) mf x a b c e = x >>= (\d -> mf a b c d e)
+
+infixr 1 ===.=<<
+
+(====.<<) :: Monad m =>
+             (a -> b -> c -> d -> e -> m f)
+          -> m e
+          -> a -> b -> c -> d -> m f
+(====.<<) mf x a b c d = x >>= mf a b c d
+
+infixr 1 ====.<<
diff --git a/src/Control/Monad/Syntax/Four.hs b/src/Control/Monad/Syntax/Four.hs
new file mode 100644
--- /dev/null
+++ b/src/Control/Monad/Syntax/Four.hs
@@ -0,0 +1,34 @@
+module Control.Monad.Syntax.Four where
+
+
+(====<<) :: Monad m =>
+            (a -> b -> c -> d -> m e)
+         -> m a
+         -> b -> c -> d -> m e
+(====<<) mf x b c d = x >>= (\a -> mf a b c d)
+
+infixr 1 ====<<
+
+(=.==<<) :: Monad m =>
+            (a -> b -> c -> d -> m e)
+         -> m b
+         -> a -> c -> d -> m e
+(=.==<<) mf x a c d = x >>= (\b -> mf a b c d)
+
+infixr 1 =.==<<
+
+(==.=<<) :: Monad m =>
+            (a -> b -> c -> d -> m e)
+         -> m c
+         -> a -> b -> d -> m e
+(==.=<<) mf x a b d = x >>= (\c -> mf a b c d)
+
+infixr 1 ==.=<<
+
+(===.<<) :: Monad m =>
+            (a -> b -> c -> d -> m e)
+         -> m d
+         -> a -> b -> c -> m e
+(===.<<) mf x a b c = x >>= mf a b c
+
+infixr 1 ===.<<
diff --git a/src/Control/Monad/Syntax/Six.hs b/src/Control/Monad/Syntax/Six.hs
new file mode 100644
--- /dev/null
+++ b/src/Control/Monad/Syntax/Six.hs
@@ -0,0 +1,50 @@
+module Control.Monad.Syntax.Six where
+
+
+(======<<) :: Monad m =>
+              (a -> b -> c -> d -> e -> f -> m g)
+           -> m a
+           -> b -> c -> d -> e -> f -> m g
+(======<<) mf x b c d e f = x >>= (\a -> mf a b c d e f)
+
+infixr 1 ======<<
+
+(=.====<<) :: Monad m =>
+              (a -> b -> c -> d -> e -> f -> m g)
+           -> m b
+           -> a -> c -> d -> e -> f -> m g
+(=.====<<) mf x a c d e f = x >>= (\b -> mf a b c d e f)
+
+infixr 1 =.====<<
+
+(==.===<<) :: Monad m =>
+              (a -> b -> c -> d -> e -> f -> m g)
+           -> m c
+           -> a -> b -> d -> e -> f -> m g
+(==.===<<) mf x a b d e f = x >>= (\c -> mf a b c d e f)
+
+infixr 1 ==.===<<
+
+(===.==<<) :: Monad m =>
+              (a -> b -> c -> d -> e -> f -> m g)
+           -> m d
+           -> a -> b -> c -> e -> f -> m g
+(===.==<<) mf x a b c e f = x >>= (\d -> mf a b c d e f)
+
+infixr 1 ===.==<<
+
+(====.=<<) :: Monad m =>
+              (a -> b -> c -> d -> e -> f -> m g)
+           -> m e
+           -> a -> b -> c -> d -> f -> m g
+(====.=<<) mf x a b c d f = x >>= (\e -> mf a b c d e f)
+
+infixr 1 ====.=<<
+
+(=====.<<) :: Monad m =>
+              (a -> b -> c -> d -> e -> f -> m g)
+           -> m f
+           -> a -> b -> c -> d -> e -> m g
+(=====.<<) mf x a b c d e = x >>= mf a b c d e
+
+infixr 1 =====.<<
diff --git a/src/Control/Monad/Syntax/Three.hs b/src/Control/Monad/Syntax/Three.hs
new file mode 100644
--- /dev/null
+++ b/src/Control/Monad/Syntax/Three.hs
@@ -0,0 +1,26 @@
+module Control.Monad.Syntax.Three where
+
+
+(===<<) :: Monad m =>
+           (a -> b -> c -> m d)
+        -> m a
+        -> b -> c -> m d
+(===<<) mf inp b c = inp >>= (\a -> mf a b c)
+
+infixl 1 ===<<
+
+(=.=<<) :: Monad m =>
+           (a -> b -> c -> m d)
+        -> m b
+        -> a -> c -> m d
+(=.=<<) mf inp a c = inp >>= (\b -> mf a b c)
+
+infixl 1 =.=<<
+
+(==.<<) :: Monad m =>
+           (a -> b -> c -> m d)
+        -> m c
+        -> a -> b -> m d
+(==.<<) mf inp a b = inp >>= mf a b
+
+infixl 1 ==.<<
diff --git a/src/Control/Monad/Syntax/Two.hs b/src/Control/Monad/Syntax/Two.hs
new file mode 100644
--- /dev/null
+++ b/src/Control/Monad/Syntax/Two.hs
@@ -0,0 +1,17 @@
+module Control.Monad.Syntax.Two where
+
+(==<<) :: Monad m =>
+          (a -> b -> m c)
+       -> m a
+       -> b -> m c
+(==<<) mf x b = x >>= (`mf` b)
+
+infixl 1 ==<<
+
+(=.<<) :: Monad m =>
+          (a -> b -> m c)
+       -> m b
+       -> a -> m c
+(=.<<) mf x a = mf a =<< x
+
+infixl 1 =.<<
